实现图像的缩放
2012-11-01 21:02
459 查看
#include "vtkBMPReader.h"
#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkImageMagnify.h"
#include "vtkTransform.h"
int main()
{
vtkBMPReader *reader= vtkBMPReader::New();
reader->SetDataByteOrderToLittleEndian();
reader->SetFileName("mm.bmp"); //程序当前目录中有这个文件
reader->SetDataOrigin(0,0,0.0);
vtkTransform *t1=vtkTransform::New();
t1->RotateZ(0);
reader->SetTransform(t1); //控制图像的旋转
vtkImageMagnify *scale=vtkImageMagnify::New();
scale->SetInputConnection(reader->GetOutputPort());
scale->SetMagnificationFactors(2,2,2); //图像各个维度的维放
vtkImageViewer *viewer = vtkImageViewer::New();
viewer->SetInput(scale->GetOutput());
viewer->SetColorWindow(1000);
viewer->SetColorLevel(200);
viewer->SetPosition(0,0);
viewer->Render();
vtkRenderWindowInteractor *viewerinter = vtkRenderWindowInteractor::New();
viewer->SetupInteractor(viewerinter);
vtkImageViewer *viewer2 = vtkImageViewer::New(); //没有缩放的原图,以作对比
viewer2->SetInput(reader->GetOutput());
viewer2->SetColorWindow(256);
viewer2->SetColorLevel(200);
viewer2->SetPosition(0,100);
viewer2->Render();
vtkRenderWindowInteractor *viewerinter2 = vtkRenderWindowInteractor::New();
viewer2->SetupInteractor(viewerinter2);
viewerinter->Initialize();
viewerinter->Start();
scale->Delete();
viewer->Delete();
viewerinter->Delete();
viewer2->Delete();
viewerinter2->Delete();
return 0;
}
保存以上代码为文件:ImageScale.cxx
以下是CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
PROJECT (ImageScale)
IF(NOT VTK_BINARY_DIR)
FIND_PACKAGE(VTK REQUIRED)
IF(NOT VTK_USE_RENDERING)
MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires VTK_USE_RENDERING.")
ENDIF(NOT VTK_USE_RENDERING)
INCLUDE(${VTK_USE_FILE})
ENDIF(NOT VTK_BINARY_DIR)
ADD_EXECUTABLE(ImageScale ImageScale.cxx)
TARGET_LINK_LIBRARIES(ImageScale vtkRendering vtkIO)
附程序原图:
贴个图(好漂漂的mm
):
本文来源:http://www.vislab.cn/bbs/viewthread.php?tid=3075&extra=page%3D17
#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkImageMagnify.h"
#include "vtkTransform.h"
int main()
{
vtkBMPReader *reader= vtkBMPReader::New();
reader->SetDataByteOrderToLittleEndian();
reader->SetFileName("mm.bmp"); //程序当前目录中有这个文件
reader->SetDataOrigin(0,0,0.0);
vtkTransform *t1=vtkTransform::New();
t1->RotateZ(0);
reader->SetTransform(t1); //控制图像的旋转
vtkImageMagnify *scale=vtkImageMagnify::New();
scale->SetInputConnection(reader->GetOutputPort());
scale->SetMagnificationFactors(2,2,2); //图像各个维度的维放
vtkImageViewer *viewer = vtkImageViewer::New();
viewer->SetInput(scale->GetOutput());
viewer->SetColorWindow(1000);
viewer->SetColorLevel(200);
viewer->SetPosition(0,0);
viewer->Render();
vtkRenderWindowInteractor *viewerinter = vtkRenderWindowInteractor::New();
viewer->SetupInteractor(viewerinter);
vtkImageViewer *viewer2 = vtkImageViewer::New(); //没有缩放的原图,以作对比
viewer2->SetInput(reader->GetOutput());
viewer2->SetColorWindow(256);
viewer2->SetColorLevel(200);
viewer2->SetPosition(0,100);
viewer2->Render();
vtkRenderWindowInteractor *viewerinter2 = vtkRenderWindowInteractor::New();
viewer2->SetupInteractor(viewerinter2);
viewerinter->Initialize();
viewerinter->Start();
scale->Delete();
viewer->Delete();
viewerinter->Delete();
viewer2->Delete();
viewerinter2->Delete();
return 0;
}
保存以上代码为文件:ImageScale.cxx
以下是CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
PROJECT (ImageScale)
IF(NOT VTK_BINARY_DIR)
FIND_PACKAGE(VTK REQUIRED)
IF(NOT VTK_USE_RENDERING)
MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires VTK_USE_RENDERING.")
ENDIF(NOT VTK_USE_RENDERING)
INCLUDE(${VTK_USE_FILE})
ENDIF(NOT VTK_BINARY_DIR)
ADD_EXECUTABLE(ImageScale ImageScale.cxx)
TARGET_LINK_LIBRARIES(ImageScale vtkRendering vtkIO)
附程序原图:
贴个图(好漂漂的mm
):
本文来源:http://www.vislab.cn/bbs/viewthread.php?tid=3075&extra=page%3D17
相关文章推荐
- 使用UIImageView实现图像拖动、缩放等
- [Android]android.graphics.Camera实现图像的旋转、缩放,配合Matrix实现图像的倾斜
- opencv实现图像的剪切和缩放
- [Android]android.graphics.Camera实现图像的旋转、缩放,配合Matrix实现图像的倾斜
- matlab图像处理基础知识1(双线性插值matlab实现--等比例调整缩放倍数)
- android.graphics.Camera实现图像的旋转、缩放,配合Matrix实现图像的倾斜
- Android Jni 利用OpenCV 实现图像尺寸缩放(二)
- thinkPHP框架实现图像裁剪、缩放、加水印的方法
- Android游戏4-27 实现图像特效-旋转 缩放 平移
- opencv实现图像缩放及canny边缘处理
- jquery+.net实现类似开心网图像缩放截取功能(附代码下载)
- 【Android接口实现】PhotoView——单点支持/多图像缩放,实现了触摸
- 用线性插值算法实现图像缩放
- PHP实现对png图像进行缩放的方法(支持透明背景)
- 使用Gnome Canvas实现图像缩放
- Android Jni 利用OpenCV 实现图像尺寸缩放(一)
- android.graphics.Camera实现图像的旋转、缩放
- 图像处理之图像基本变化(平移、缩放、旋转)(Octave实现)
- 图像旋转与缩放实现
- Android Jni 利用OpenCV 实现图像尺寸缩放(三)