OpenCV官方提供了windows可安装的版本,已经有编译好的dll,不过不包括opencv_contrib。如果想用这部分算法,则需要自己编译opencv。
opencv和opencv_contrib的下载地址:
https://github.com/opencv/opencv/tree/4.3.0(这里我用的是4.3.0)
https://github.com/opencv/opencv_contrib/tree/4.3.0
下载完后进行解压,新建build文件夹存放编译产生的工程
打开cmake,先填写好源码路径和存放编译工程的路径
完了点击configure
点击finsh后,它会自动下载需要的依赖项,等待一会,没有问题就会出现以下。
(若是提示找不到某些依赖,可通过查看日志文件CMakeDownloadLog.txt手动下载,放到对应文件夹后,重新点击configure)
这里从CMakeDownloadLog.txt里截取的一小段作示例:
#do_copy "sr.prototxt" "69db99927a70df953b471daaba03fbef" "https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/sr.prototxt" "D:/zhao/work/opencv+contrib/build/downloads/wechat_qrcode"
#missing "D:/zhao/work/opencv+contrib/build/downloads/wechat_qrcode/sr.prototxt"
这里说少了sr.prototxt,从这里下载https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/sr.prototxt,放到这里D:/zhao/work/opencv+contrib/build/downloads/wechat_qrcode/sr.prototxt
上图有很多红色,说明有问题,再点击一次configure,红色消失。
接下来对编译选项进行修改,第一项是找到BUILD,把里面的BUILD_opencv_world勾选上,这样最终编译只会生成一个dll,方便调用;
第二就是找到OPENCV下面的OPENCV_EXTRA_MODULES_PATH,把刚才下载解压的opencv-contrib的解压路径的modules文件夹填写上去。
再重新点击configure,更新编译设置,没有再出现红色就是成功了。
成功了后就可以点击Generate,生成vs工程。
到这一步就只剩下用vs编译源码了,距离成功只剩一步了!!
点击上图的Open Project打开生成好的工程(也可以到build的目录下找到OpenCV.sln打开)
修改配置方案属性改为Release x64(也可以不改,默认是Debug 版本,看你需要)
点击生成->生成解决方案开始编译,等一段时间后出现,
没有失败就是编译成功了,然后在解决方案资源管理器中找到INSTALL,右键仅用于项目—》仅生成INSTALL。
结果如下,此时在build目录下就会生成一个install文件夹,里面就是我们调用opencv所需的了!至于调用测试,这里我就不写了。