Visual Studio 2013编译OpenCV3.0+ITK-SNAP

1.CMake编译OpenCV源码

从Github下载源码 OpenCV
打开CMake编译,需要VTK的支持,由于VTK7.0取消了OpenGL,改为OpenGL2,因此如果出现缺少vtkRenderingOpenGL错误,需要在OpenCV的CMake文件进行相应修改, 打开D:\opencv-3.0.0\cmake\OpenCVDetectVTK.cmake,在第6行将vtkRenderingOpenGL改为vtkRenderingOpenGL2,随后即可成功Configure/Generate,Github的最新版本修正了这一错误。
注意:在BUILD中取消不需要的组件,比如opencv_viz和python,勾选BUILD_opencv_world。

2.生成OpenCV

用VS2013打开OpenCV.sln,先后生成ALL_BUILD和INSTALL。
注意:生成过程中可能会发生卡顿等现象,稍等即可。
OpenCV的所有头文件和lib库安装到了D:\OpenCV3.0\install目录下,使用时需配置附加包含目录:
D:\OpenCV3.0\install\include\opencv2
D:\OpenCV3.0\install\include\opencv
D:\OpenCV3.0\install\include
附加库目录:
D:\OpenCV3.0\install\x64\vc12\lib
附加依赖项:
opencv_world320d.lib
系统环境变量Path路径添加:
D:\OpenCV3.0\install\x64\vc12\bin

3.CMake编译ITK-SNAP

Github上最新版的ITK-SNAP缺少Submodules里面的内容,因此需要用Github命令行工具,进入ITK-SNAP源码目录,使用如下命令更新:
git submodule init
git submodule update
此外还需要OpenCV,ITK以及ITKOpenCVBridge的支持,因此需要先对ITK进行编译,加入OPENCV_DIR,并且选中模块Module_ITKVideoBridgeOpenCV,编译后在ITK中生成相应模块。
为了避免出现VTK和QT相关错误,最好根据 Building ITK-SNAP选择第三方库的版本,即VTK6.3.0,QT5以上,不要选择SNAP_WITH_QT4。
因此对ITK中的ITKVtkGlue模块而言,如果之前不是用VTK6.3.0的话,需要在CMake中修改VTK_DIR为VTK6.3.0-build目录重新编译生成,然后再编译ITK-SNAP,这样在ITK-SNAP中,自动会配置好跟VTK6.3.0相关的属性。
CMake编译ITK-SNAP,需要选择ITK_DIR,OPENCV_DIR,QT的qmake.exe路径进行编译。

4.生成ITK-SNAP

打开SNAP.sln生成工程,D:\ITK-SNAP\SNAPCommon.cxx总是存在缺少引号的错误,需要补全右半部分:
// Build date - shown to help debugging nightly builds
const char SNAPBuildDate[] = "2017/03/20?";
至此生成成功,运行即可。

5.错误分析

1. D:\itk-snap-src\GUI\Qt\Components\SNAPQtCommon.cxx(560): error C2146: 语法错误: 缺少“)”(在标识符“Ctrl”的前面)
经过在网上搜索SNAPQtCommon.cxx文件可知,其中前半部分均是乱码,而工程中打开的有些用QChar()转换了,出错地方没有,暂时先注释掉,忽略该错误,待以后有问题再详细解决。
2.找不到vtk相关的.dll文件
在Path中加入.dll所在目录,比如:D:\VTK-6.3.0-build\bin\Debug
3.itksnapui_model.lib和itksnapui_qt.lib无法LINK到vtk相关的
找到相关项目,配置附加库目录为vtk6.3.0的lib目录,附加依赖项itksnapui_model加入
vtkCommonCore-6.3.lib;vtkRenderingCore-6.3.lib;
itksnapui_qt只需加入
vtkCommonCore-6.3.lib
下面是vtk6.3.0的所有lib库,并不都需要,仅在此罗列,以防不时之需。
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
comctl32.lib
vfw32.lib
ws2_32.lib
wsock32.lib
opengl32.lib
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
vtkGeovisCore-6.3.lib
vtkgl2ps-6.3.lib
vtkGUISupportQt-6.3.lib
vtkGUISupportQtOpenGL-6.3.lib
vtkGUISupportQtSQL-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

6.参考文献





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值