VS2013配置ITK4.8.0,VTK6.3.0

所用的ITK和VTK是已经编译好的,如果没有编译,需要自己进行编译。

1、配置环境变量

双击【此电脑】,右键单击【此电脑】,选择【属性】,单击【高级系统设置】,在【高级】菜单页面下,选择【环境变量】,在【系统变量】菜单中选择【Path】变量,进行【 编辑】,在【编辑环境变量】界面中选择【新建】,添加VTK和ITK的bin文件的路径。如下图所示


2、配置属性表1

打开VS,新建一个空项目,在菜单栏中单击【视图】,选择【属性管理器】

(1)配置全局属性表

全局属性表配置好之后,每次新建项目不需要再重新配置。

在【Debug|Win32】目录下,双击【Microsoft.Cpp.Win32.user】打开属性页,进行配置。

(2)配置局部属性表

配置好局部属性表之后,可以将属性表进行保存,每次新建项目后需要将保存的属性表添加到属性管理器中。

在【Debug|Win32】目录下,右键单击【Debug|Win32】,选择【添加新项目属性表】,进行配置。

在【Debug|Win32】目录下,右键单击【Debug|Win32】,选择【添加现有属性表】,将之前配置好的属性表添加到属性表中。

3、配置属性表2

在打开的【属性页】中进行如下配置

在【通用属性】下单击【VC++目录】,选择【包含目录】,单击【编辑】,添加如下路径:

ITK:
D:\ProgramFiles\InsightToolkit-4.8.0\include\ITK-4.8\win32-vc8
D:\ProgramFiles\InsightToolkit-4.8.0\include\ITK-4.8
D:\ProgramFiles\InsightToolkit-4.8.0\include

VTK:
D:\ProgramFiles\VTK-6.3.0\include\vtk-6.3
D:\ProgramFiles\VTK-6.3.0\include

在【通用属性】下单击【VC++目录】,选择【库目录】,单击【编辑】,添加如下路径:

ITK:
D:\ProgramFiles\InsightToolkit-4.8.0\lib

VTK:
D:\ProgramFiles\VTK-6.3.0\lib

在【通用属性】下单击【链接器】,选择【输入】,选择【附加依赖项】,添加如下依赖项:

ITK:
ITKBiasCorrection-4.8.lib
ITKBioCell-4.8.lib
ITKCommon-4.8.lib
ITKDICOMParser-4.8.lib
itkdouble-conversion-4.8.lib
ITKEXPAT-4.8.lib
ITKFEM-4.8.lib
itkgdcmcharls-4.8.lib
itkgdcmCommon-4.8.lib
itkgdcmDICT-4.8.lib
itkgdcmDSED-4.8.lib
itkgdcmIOD-4.8.lib
itkgdcmjpeg8-4.8.lib
itkgdcmjpeg12-4.8.lib
itkgdcmjpeg16-4.8.lib
itkgdcmMEXD-4.8.lib
itkgdcmMSFF-4.8.lib
itkgdcmopenjpeg-4.8.lib
itkgdcmsocketxx-4.8.lib
ITKgiftiio-4.8.lib
itkhdf5_cpp-4.8.lib
itkhdf5-4.8.lib
ITKIOBioRad-4.8.lib
ITKIOBMP-4.8.lib
ITKIOCSV-4.8.lib
ITKIOGDCM-4.8.lib
ITKIOGE-4.8.lib
ITKIOGIPL-4.8.lib
ITKIOHDF5-4.8.lib
ITKIOImageBase-4.8.lib
ITKIOIPL-4.8.lib
ITKIOJPEG-4.8.lib
ITKIOLSM-4.8.lib
ITKIOMesh-4.8.lib
ITKIOMeta-4.8.lib
ITKIOMRC-4.8.lib
ITKIONIFTI-4.8.lib
ITKIONRRD-4.8.lib
ITKIOPNG-4.8.lib
ITKIOSiemens-4.8.lib
ITKIOSpatialObjects-4.8.lib
ITKIOStimulate-4.8.lib
ITKIOTIFF-4.8.lib
ITKIOTransformBase-4.8.lib
ITKIOTransformHDF5-4.8.lib
ITKIOTransformInsightLegacy-4.8.lib
ITKIOTransformMatlab-4.8.lib
ITKIOVTK-4.8.lib
ITKIOXML-4.8.lib
itkjpeg-4.8.lib
ITKKLMRegionGrowing-4.8.lib
ITKLabelMap-4.8.lib
ITKMesh-4.8.lib
ITKMetaIO-4.8.lib
itkNetlibSlatec-4.8.lib
ITKniftiio-4.8.lib
ITKNrrdIO-4.8.lib
ITKOptimizers-4.8.lib
ITKOptimizersv4-4.8.lib
ITKPath-4.8.lib
itkpng-4.8.lib
ITKPolynomials-4.8.lib
ITKQuadEdgeMesh-4.8.lib
ITKSpatialObjects-4.8.lib
ITKStatistics-4.8.lib
itksys-4.8.lib
itktiff-4.8.lib
itkv3p_lsqr-4.8.lib
itkv3p_netlib-4.8.lib
itkvcl-4.8.lib
ITKVideoCore-4.8.lib
ITKVideoIO-4.8.lib
itkvnl_algo-4.8.lib
itkvnl-4.8.lib
ITKVNLInstantiation-4.8.lib
ITKVTK-4.8.lib
ITKWatersheds-4.8.lib
itkzlib-4.8.lib
ITKznz-4.8.lib


VTK:
vtkalglib-6.3.lib
vtkChartsCore-6.3.lib
vtkCommonColor-6.3.lib
vtkCommonComputationalGeometry-6.3.lib
vtkCommonCore-6.3.lib
vtkCommonDataModel-6.3.lib
vtkCommonExecutionModel-6.3.lib
vtkCommonMath-6.3.lib
vtkCommonMisc-6.3.lib
vtkCommonSystem-6.3.lib
vtkCommonTransforms-6.3.lib
vtkDICOMParser-6.3.lib
vtkDomainsChemistry-6.3.lib
vtkexoIIc-6.3.lib
vtkexpat-6.3.lib
vtkFiltersAMR-6.3.lib
vtkFiltersCore-6.3.lib
vtkFiltersExtraction-6.3.lib
vtkFiltersFlowPaths-6.3.lib
vtkFiltersGeneral-6.3.lib
vtkFiltersGeneric-6.3.lib
vtkFiltersGeometry-6.3.lib
vtkFiltersHybrid-6.3.lib
vtkFiltersHyperTree-6.3.lib
vtkFiltersImaging-6.3.lib
vtkFiltersModeling-6.3.lib
vtkFiltersParallel-6.3.lib
vtkFiltersParallelImaging-6.3.lib
vtkFiltersProgrammable-6.3.lib
vtkFiltersSelection-6.3.lib
vtkFiltersSMP-6.3.lib
vtkFiltersSources-6.3.lib
vtkFiltersStatistics-6.3.lib
vtkFiltersTexture-6.3.lib
vtkFiltersVerdict-6.3.lib
vtkfreetype-6.3.lib
vtkftgl-6.3.lib
vtkGeovisCore-6.3.lib
vtkgl2ps-6.3.lib
vtkGUISupportQt-6.3.lib
vtkGUISupportQtOpenGL-6.3.lib
vtkGUISupportQtSQL-6.3.lib
vtkGUISupportQtWebkit-6.3.lib
vtkhdf5_hl-6.3.lib
vtkhdf5-6.3.lib
vtkImagingColor-6.3.lib
vtkImagingCore-6.3.lib
vtkImagingFourier-6.3.lib
vtkImagingGeneral-6.3.lib
vtkImagingHybrid-6.3.lib
vtkImagingMath-6.3.lib
vtkImagingMorphological-6.3.lib
vtkImagingSources-6.3.lib
vtkImagingStatistics-6.3.lib
vtkImagingStencil-6.3.lib
vtkInfovisCore-6.3.lib
vtkInfovisLayout-6.3.lib
vtkInteractionImage-6.3.lib
vtkInteractionStyle-6.3.lib
vtkInteractionWidgets-6.3.lib
vtkIOAMR-6.3.lib
vtkIOCore-6.3.lib
vtkIOEnSight-6.3.lib
vtkIOExodus-6.3.lib
vtkIOExport-6.3.lib
vtkIOGeometry-6.3.lib
vtkIOImage-6.3.lib
vtkIOImport-6.3.lib
vtkIOInfovis-6.3.lib
vtkIOLegacy-6.3.lib
vtkIOLSDyna-6.3.lib
vtkIOMINC-6.3.lib
vtkIOMovie-6.3.lib
vtkIONetCDF-6.3.lib
vtkIOParallel-6.3.lib
vtkIOParallelXML-6.3.lib
vtkIOPLY-6.3.lib
vtkIOSQL-6.3.lib
vtkIOVideo-6.3.lib
vtkIOXML-6.3.lib
vtkIOXMLParser-6.3.lib
vtkjpeg-6.3.lib
vtkjsoncpp-6.3.lib
vtklibxml2-6.3.lib
vtkmetaio-6.3.lib
vtkNetCDF_cxx-6.3.lib
vtkNetCDF-6.3.lib
vtkoggtheora-6.3.lib
vtkParallelCore-6.3.lib
vtkpng-6.3.lib
vtkproj4-6.3.lib
vtkRenderingAnnotation-6.3.lib
vtkRenderingContext2D-6.3.lib
vtkRenderingContextOpenGL-6.3.lib
vtkRenderingCore-6.3.lib
vtkRenderingFreeType-6.3.lib
vtkRenderingGL2PS-6.3.lib
vtkRenderingImage-6.3.lib
vtkRenderingLabel-6.3.lib
vtkRenderingLIC-6.3.lib
vtkRenderingLOD-6.3.lib
vtkRenderingOpenGL-6.3.lib
vtkRenderingQt-6.3.lib
vtkRenderingVolume-6.3.lib
vtkRenderingVolumeOpenGL-6.3.lib
vtksqlite-6.3.lib
vtksys-6.3.lib
vtktiff-6.3.lib
vtkverdict-6.3.lib
vtkViewsContext2D-6.3.lib
vtkViewsCore-6.3.lib
vtkViewsInfovis-6.3.lib
vtkViewsQt-6.3.lib
vtkzlib-6.3.lib
单击【确定】

4、测试

ITK:

#include <iostream>  
#include "itkImage.h"  

using namespace std;

int main()
{
	typedef itk::Image<unsigned short, 3> ImageType;
	ImageType::Pointer image = ImageType::New();

	cout << "ITK Hello World !" << endl;
	getchar();

	return 0;
}

VTK:

//  
// This simple example shows how to do basic rendering and pipeline  
// creation using C++.  
//  
#include "vtkCylinderSource.h"  
#include "vtkPolyDataMapper.h"  
#include "vtkActor.h"  
#include "vtkRenderer.h"  
#include "vtkRenderWindow.h"  
#include "vtkRenderWindowInteractor.h"  
#include "vtkProperty.h"  
#include "vtkCamera.h"  

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)

int main()
{
	// This creates a polygonal cylinder model with eight circumferential facets.  
	//  
	vtkCylinderSource *cylinder = vtkCylinderSource::New();
	cylinder->SetResolution(8);

	// The mapper is responsible for pushing the geometry into the graphics  
	// library. It may also do color mapping, if scalars or other attributes  
	// are defined.  
	//  
	vtkPolyDataMapper *cylinderMapper = vtkPolyDataMapper::New();
	cylinderMapper->SetInputConnection(cylinder->GetOutputPort());

	// The actor is a grouping mechanism: besides the geometry (mapper), it  
	// also has a property, transformation matrix, and/or texture map.  
	// Here we set its color and rotate it -22.5 degrees.  
	vtkActor *cylinderActor = vtkActor::New();
	cylinderActor->SetMapper(cylinderMapper);
	cylinderActor->GetProperty()->SetColor(1.0000, 0.3882, 0.2784);
	cylinderActor->RotateX(30.0);
	cylinderActor->RotateY(-45.0);

	// Create the graphics structure. The renderer renders into the  
	// render window. The render window interactor captures mouse events  
	// and will perform appropriate camera or actor manipulation  
	// depending on the nature of the events.  
	//  
	vtkRenderer *ren1 = vtkRenderer::New();
	vtkRenderWindow *renWin = vtkRenderWindow::New();
	renWin->AddRenderer(ren1);
	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
	iren->SetRenderWindow(renWin);

	// Add the actors to the renderer, set the background and size  
	//  
	ren1->AddActor(cylinderActor);
	ren1->SetBackground(0.1, 0.2, 0.4);
	renWin->SetSize(200, 200);

	// We'll zoom in a little by accessing the camera and invoking a "Zoom"  
	// method on it.  
	ren1->ResetCamera();
	ren1->GetActiveCamera()->Zoom(1.5);
	renWin->Render();

	// This starts the event loop and as a side effect causes an initial render.  
	iren->Start();

	// Exiting from here, we have to delete all the instances that  
	// have been created.  
	cylinder->Delete();
	cylinderMapper->Delete();
	cylinderActor->Delete();
	ren1->Delete();
	renWin->Delete();
	iren->Delete();

	return 0;
}

结果显示如下图则VTK安装成功


5、Error:

运行VTK程序会提示如下错误:

Error:no override found for 'vtkPolyDataMapper'

出错的原因是:

在VS中直接建的工程在编译时直接用的本地编译器,而不是用cmake进行编译的,因此会有一些宏定义没有定义。
解决方法:

添加如下语句

#include <vtkAutoInit.h>  
VTK_MODULE_INIT(vtkRenderingOpenGL)




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值