1.资源下载
- cuda10.1
- opencv4.1.0+ opencv_contrib4.1.0
由于知识产权的原因,OpenCV将很多算法放到了opencv_contrib中,在github上,这两块代码就是分别放在不同的repository中的。
OpenCV官方提供了windows可安装的版本,已经有编译好的dll,不过不包括opencv_contrib。如果想应用这部分算法,则需要自己编译opencv,将opencv_contrib编译到opencv中。
注意:两个库的版本一定要一致,版本可以在Tag下选择:
下载时通过客户端下载速度更快,客户端的加速技巧可以在其他博客找到。下载后放到一个文件夹下:
- 最后下载cmake
2.编译
在下载源文件的同级目录下新建build文件夹(如上面两个图),作为编译输出位置。输出位置一定要保证磁盘容量足够,不然编译会出现一系列问题,一个debug版本的编译大概就要20G左右。在第一次编译的时候,就因为磁盘不足的原因,编译失败。填写cmake的头文件:
点击Configure,弹出对话框,选择编译工程的平台。我选的是64位的VS2019和 “use defalut native compilers" 后点击Finish,等待配置完毕。如果你的CUDA安装正确会检测到你的CUDA版本。在配置过程中会联网下载点东西,如果这时候网络不好的话会报错,在Cmake编译的Log文件中有需要下载的文件和文件对应的网址,可以等网络好的时候再联网下载,将下载好的文件放入原位置即可。
在完成第一次配置后,出现一片红色,再点一次配置就变白了。变白后改变其中的三个选项:
1.注意勾选WITH_CUDA(带了cuda后,以后发布程序到其他电脑上都要带cuda的DLL文件,所以慎重选择)
2.勾选BUILD_opencv_world选项,这样,在调用dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦。
3.在OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了。
按Generate按键,生成vs工程文件了。 生成完毕之后在 “ Configuring done"下面会出现”Generating done"。之后直接点击“Open Project",便会使用VS2019打开工程。
在 VS2019界面 点击 “ 生成”->“配置管理器”,在配置管理器中选择 “ALL_BUILD"和”INSTALL“ ,生成即可 。
选择Debug x64,点击生成->生成解决方案开始编译。
然后将编译选项调整为Release x64,再重复一下以上的过程,生成解决方案。此时在“目的路径”的install目录下,生成了调用dll的全部内容。
如果没有选INSTALL可以右击INSTALL,点击“仅用于项目->仅生成INSTALL”
生成成功后继续编译Release版本,最后可以在指定输出文件夹下的install文件夹下找到编译输出内容
最后参考之前的配置opencv的方法来配置就好了。
注意
因为勾选了With CUDA,以后再发布程序exe的时候不止需要配opencv的dll,还要添加cuda的dll。