1、check BUILD_EXAMPLES;
2、check BUILD_TESTING;
3、将CMAKE_INSTALL_PREFIX从C盘路径改为F盘下的某个文件夹,这样做的目的是因为CMAKE_INSTALL_PREFIX设置了最后.sln中INSTALL工程要将生成的.lib和.dll文件提取到哪里,而如果设置到C盘的话,则很有可能由于没有访问权限,导致INSTALL失败。不过,其实这里的vtk编译过程最后也不用INSTALL,因为opencv编译的时候需要的是包含VTKConfig.cmake文件的文件夹,并非INSTALL填充的文件夹。
另外一个我后悔没做的更改就是没有uncheck掉BUILD_SHARED_LIBS,导致后续我运行自己的.exe文件时总是需要把vtk的大概40个.dll文件全拷到所在文件夹中,很费事。要是我事先把vtk做成静态库,后续它的函数应该就封装到opencv的某个module的.dll中去了,不用再拷vtk的.dll文件。
编译好vtk之后,再到github上把opencv_contrib代码下下来,之后打开opencv的cmake工程,把OPENCV_EXTRA_MODULES_PATH设置到.../opencv_contrib-master/modules文件夹,把VTK_DIR设置到上述vtk build的文件夹。接着check上BUILD_opencv_viz,另外要注意的是最好是uncheck掉BUILD_opencv_world和BUILD_opencv_contrib_world,因为我发现要是生成这两个库,在VS build的时候经常会报一堆错误,要是不生成这两个库还是使用单个库的话build就不会报错。
配置好之后点击configure顺利通过,但是点击generate的时候报了如下的cmake错误:
Requested modules not available:
vtkRenderingOpenGL
Call Stack (most recent call first):
/usr/lib64/cmake/vtk-7.0/VTKConfig.cmake:88 (vtk_module_config)
cmake/OpenCVDetectVTK.cmake:6 (find_package)
CMakeLists.txt:597 (include)
搜索了半天,才在这里找到了解决方案,于是对照着在OpenCVDetectVTK.cmake中做了相应更改之后generate就通过了,之后打开VS去生成各个库即可了。
跑了一下viz三维模块,感觉还是相当不错的。
搜索了半天,才在这里找到了解决方案,于是对照着在OpenCVDetectVTK.cmake中做了相应更改之后generate就通过了,之后打开VS去生成各个库即可了。
跑了一下viz三维模块,感觉还是相当不错的。