Win10操作系统 用VS2017 编译 适用Cuda9.0, QT,python3的 Opencv3.3 Release版本(使用Opencv World)

 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

    本文主要是介绍用VS2017编译包含Cuda9.0,QT,Python3.6 特性的opencv3.3库。虽然VS可能已经更新到更新的版本,但是Cuda9.0比较坑 ,最多只能支持到VS2017的14.11.25503版本的编译工具链,所以如果说即使你安装的是VS2017,如果编译工具链的版本高于14.11.25503(VS安装目录的VC\Tools\MSVC下可以查看具体你安装了那些版本编译工具链)的话也从Cuda9.0中无法获得Nvidia GPU进行计算。

Opencv中的QT选项可以编译出的程序得到非常好看的界面(个人觉得Qt的界面比windows的默认界面好看),而CUDA选项可以使OpenCV能够使用GPU来进行计算。如果Opencv 添加了Python选项(前提是你已经按照了对应版本的Python),那么你就可以在Python中使用Opencv的特性,这时非常重要的,因为目前windows平台下很多深度学习的库(如Tensorflow)只能在python下使用。最后如果在Opencv CMake选项下添加Opencvworld,那么所有Opencv的特性都会被编译到一个opencv_world330.lib以及opencv_world330.dll库内,这样以后编写Opencv应用时,只要将opencv_world添加到附加依赖库就可以了。


之前以及写了一篇博客编译不包含Python3的Debug版本Opencv,如果碰到什么错误,可以参考那篇文章。

这篇博客主要解决添加了Opencv world 以后发生的新错误。

增加QT5编译选项以及OPENCV world选项时,如果出现Link error: ……(后面内容不太记得了)
原因:
因为modules\highgui下的默认的CMakeLists.txt未对modules\highgui\src\window_QT.h进行QT头初始化
解决方法:
在找到modules\highgui\CMakeLists.txt,找到HAVE_QT5,在之后的list(APPEND highgui_srcs...)之前增加一行
QT5_WRAP_CPP(_MOC_OUTFILES ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.h)
然后将
 list(APPEND highgui_srcs
      ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.cpp
      ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.h
      ${_RCC_OUTFILES})
修改为
 list(APPEND highgui_srcs
      ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.cpp
      ${CMAKE_CURRENT_LIST_DIR}/src/window_QT.h
      ${_RCC_OUTFILES}
      ${_MOC_OUTFILES})

你可能感兴趣的:(Opencv)