手动配置(非CMake)ITK和VTK环境实现ITK读取、VTK显示PNG图像

41 篇文章 34 订阅
28 篇文章 41 订阅
该博客介绍了如何在Win10环境下手动配置ITK 4.13.2和VTK 8.2.0的开发环境,包括在VS2019中创建项目,修改源代码以实现ITK读取PNG图像并利用VTK显示,以及设置包含目录、库目录和链接器。通过这个过程,读者可以学习到如何将这两个库结合使用进行图像处理。
摘要由CSDN通过智能技术生成

完整博客见:Win10-64位(或Win7)+VS2019+ITK4.13.2+VTK8.2+CMake3.16环境配置

5、ITK读取、VTK显示png图像(手动配置ITK和VTK环境)

第5小节,本例程通过手动新建项目(不使用CMakeLists.txt构建)配置好的ITK和VTK都可运行工程 itk_vtk_3 文件夹下载(实现ITK读取、VTK显示png图像)

5.1 在完成3.7节基础上,将目录 F:\Software\ITK4.13.2 中的 itk2 项目在相同目录下复制粘贴一份,并重命名为 itk_vtk_3

5.2 双击 目录 F:\Software\ITK4.13.2\itk_vtk_3\helloItk 中 helloVtk.sln 使用VS2019打开工程,选择 解决方案资源管理器 下的源文件下的 itk_png_reader and writer.cxx 文件,将其改名为 itk_png_reade_vtk_show.cxx

然后将 itk_png_reade_vtk_show.cxx 中的源码替换为以下源码:

#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageToVTKImageFilter.h"
#include "itkPNGImageIOFactory.h"
#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkAutoInit.h" 
//#include "itkFlipImageFilter.h"//图像翻转滤波器类

#include "vtkImageFlip.h"
#include "vtkSmartPointer.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
//ITK和VTK联合环境测试(ITK读取、VTK显示图像)
int main(int argc, char** argv)
{
	typedef itk::Image<unsigned char, 2> ImageType;//the type of pic
	typedef itk::ImageFileReader<ImageType> ReaderType;   //the class of read pic
	typedef itk::ImageToVTKImageFilter<ImageType> ConnectorType;  //connenct itk and vtk

	ReaderType::Pointer reader = ReaderType::New();
	ConnectorType::Pointer connector = ConnectorType::New();
	reader->SetFileName("cuiti.png");

	itk::PNGImageIOFactory::RegisterOneFactory();

	connector->SetInput(reader->GetOutput());
	connector->Update();

	vtkSmartPointer<vtkImageFlip> imageflip = vtkSmartPointer<vtkImageFlip>::New();
	imageflip->SetInputData(connector->GetOutput());
	imageflip->SetFilteredAxes(1);//Y轴  图像正向显示
	imageflip->Update();

	vtkImageViewer* viewer = vtkImageViewer::New();
	vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();
	viewer->SetInputData(imageflip->GetOutput());
	viewer->SetupInteractor(interactor);
	viewer->GetRenderWindow()->SetSize(500, 500);//set window size
	viewer->SetColorWindow(255); //set window color
	viewer->SetColorLevel(128);   //set the level of window
	viewer->Render();

	interactor->Initialize();
	interactor->Start();
	return EXIT_SUCCESS;
}

5.3 设置包含目录:解决方案中 右键 helloVtk ——> 属性 ——> VC++目录 ——> 包含目录,添加 

F:\Software\VTK8.2.0\Bin\include\vtk-8.2 

F:\Software\ITK4.13.2\Source\InsightToolkit-4.13.2\Modules\Bridge\VtkGlue\include

F:\Software\ITK4.13.2\Source\InsightToolkit-4.13.2\Modules\Bridge\VTK\include

包含的后两个路径都是ITK和VTK之间作为桥梁链接的头文件目录:

 

5.4 设置库目录:解决方案中 右键 helloItk ——> 属性 ——> VC++目录 ——> 库目录,添加 F:\Software\VTK8.2.0\Bin\lib

5.5 配置链接器:解决方案中 右键 helloItk ——> 属性 ——> 链接器 ——> 输入 ——> 附加依赖项,添加  F:\Software\VTK8.2.0\Bin\lib 目录下的所有 .lib 文件

VTK8.2.0 的所有 .lib 文件如下:

vtkChartsCore-8.2.lib
vtkCommonColor-8.2.lib
vtkCommonComputationalGeometry-8.2.lib
vtkCommonCore-8.2.lib
vtkCommonDataModel-8.2.lib
vtkCommonExecutionModel-8.2.lib
vtkCommonMath-8.2.lib
vtkCommonMisc-8.2.lib
vtkCommonSystem-8.2.lib
vtkCommonTransforms-8.2.lib
vtkDICOMParser-8.2.lib
vtkDomainsChemistry-8.2.lib
vtkDomainsChemistryOpenGL2-8.2.lib
vtkdoubleconversion-8.2.lib
vtkexodusII-8.2.lib
vtkexpat-8.2.lib
vtkFiltersAMR-8.2.lib
vtkFiltersCore-8.2.lib
vtkFiltersExtraction-8.2.lib
vtkFiltersFlowPaths-8.2.lib
vtkFiltersGeneral-8.2.lib
vtkFiltersGeneric-8.2.lib
vtkFiltersGeometry-8.2.lib
vtkFiltersHybrid-8.2.lib
vtkFiltersHyperTree-8.2.lib
vtkFiltersImaging-8.2.lib
vtkFiltersModeling-8.2.lib
vtkFiltersParallel-8.2.lib
vtkFiltersParallelImaging-8.2.lib
vtkFiltersPoints-8.2.lib
vtkFiltersProgrammable-8.2.lib
vtkFiltersSelection-8.2.lib
vtkFiltersSMP-8.2.lib
vtkFiltersSources-8.2.lib
vtkFiltersStatistics-8.2.lib
vtkFiltersTexture-8.2.lib
vtkFiltersTopology-8.2.lib
vtkFiltersVerdict-8.2.lib
vtkfreetype-8.2.lib
vtkGeovisCore-8.2.lib
vtkgl2ps-8.2.lib
vtkglew-8.2.lib
vtkhdf5-8.2.lib
vtkhdf5_hl-8.2.lib
vtkImagingColor-8.2.lib
vtkImagingCore-8.2.lib
vtkImagingFourier-8.2.lib
vtkImagingGeneral-8.2.lib
vtkImagingHybrid-8.2.lib
vtkImagingMath-8.2.lib
vtkImagingMorphological-8.2.lib
vtkImagingSources-8.2.lib
vtkImagingStatistics-8.2.lib
vtkImagingStencil-8.2.lib
vtkInfovisCore-8.2.lib
vtkInfovisLayout-8.2.lib
vtkInteractionImage-8.2.lib
vtkInteractionStyle-8.2.lib
vtkInteractionWidgets-8.2.lib
vtkIOAMR-8.2.lib
vtkIOAsynchronous-8.2.lib
vtkIOCityGML-8.2.lib
vtkIOCore-8.2.lib
vtkIOEnSight-8.2.lib
vtkIOExodus-8.2.lib
vtkIOExport-8.2.lib
vtkIOExportOpenGL2-8.2.lib
vtkIOExportPDF-8.2.lib
vtkIOGeometry-8.2.lib
vtkIOImage-8.2.lib
vtkIOImport-8.2.lib
vtkIOInfovis-8.2.lib
vtkIOLegacy-8.2.lib
vtkIOLSDyna-8.2.lib
vtkIOMINC-8.2.lib
vtkIOMovie-8.2.lib
vtkIONetCDF-8.2.lib
vtkIOParallel-8.2.lib
vtkIOParallelXML-8.2.lib
vtkIOPLY-8.2.lib
vtkIOSegY-8.2.lib
vtkIOSQL-8.2.lib
vtkIOTecplotTable-8.2.lib
vtkIOVeraOut-8.2.lib
vtkIOVideo-8.2.lib
vtkIOXML-8.2.lib
vtkIOXMLParser-8.2.lib
vtkjpeg-8.2.lib
vtkjsoncpp-8.2.lib
vtklibharu-8.2.lib
vtklibxml2-8.2.lib
vtkLocalExample-8.2.lib
vtklz4-8.2.lib
vtklzma-8.2.lib
vtkmetaio-8.2.lib
vtkNetCDF-8.2.lib
vtkogg-8.2.lib
vtkParallelCore-8.2.lib
vtkpng-8.2.lib
vtkproj-8.2.lib
vtkpugixml-8.2.lib
vtkRenderingAnnotation-8.2.lib
vtkRenderingContext2D-8.2.lib
vtkRenderingContextOpenGL2-8.2.lib
vtkRenderingCore-8.2.lib
vtkRenderingFreeType-8.2.lib
vtkRenderingGL2PSOpenGL2-8.2.lib
vtkRenderingImage-8.2.lib
vtkRenderingLabel-8.2.lib
vtkRenderingLOD-8.2.lib
vtkRenderingOpenGL2-8.2.lib
vtkRenderingVolume-8.2.lib
vtkRenderingVolumeOpenGL2-8.2.lib
vtksqlite-8.2.lib
vtksys-8.2.lib
vtktheora-8.2.lib
vtktiff-8.2.lib
vtkverdict-8.2.lib
vtkViewsContext2D-8.2.lib
vtkViewsCore-8.2.lib
vtkViewsInfovis-8.2.lib
vtkzlib-8.2.lib

5.6 然后点击 本地Windows调试器 运行

按住鼠标左键在图片上左右或图片上下滑动可进行图片窗宽窗位的调节:

    

至此,ITK读取、VTK显示png图像(手动配置ITK和VTK环境)完成!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦我飞也

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值