VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)

本教程用的是:opencv4.5、opencv_contrib-4.5.0模块、cmake-gut-3.19.3软件、vs2019。(版本不一样的也可以参考一下,遇到的问题都差不多的)

提前声明:我的opencv4.5和opencv_contrib-4.5.0模块都是放在D:\Installation directory目录下。

OpenCVcontrib下载地址:
https://codeload.github.com/opencv/opencv_contrib/zip/4.5.0

cmake-gui下载地址:
https://cmake.org/download/

一、CMake编译opencv_contrib-4.5.0模块
1、安装好cmake-gui后,按图下操作:
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第1张图片
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第2张图片


2、可能遇到的问题:网络问题会有一些文件下载不了,导致出现红字字体。但是不要慌。有问题就要动手解决,如下图,按照提示打开D:\Installation directory\opencv\towbuilb\CMakeDownloadLog.txt日志文本文件
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第3张图片


3、CMakeDownloadLog.txt日志文本文件
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第4张图片


4、看日志文件可能会有点晕,可以再打开D:\Installation directory\opencv\sources.cache,这个文件夹里面的文件是0kb的,都是下载不成功的,需要我们去网上下载放在.cache对应的文件夹下,其中ffmpeg文件夹下的三个文件有版本的限制,这个比较难解决,其他的可以复制粘贴我的,我的已经下载好了(百度网盘链接在文章底部),只要你的.cache中的0kb文件名和我的一样就可以覆盖0kb文件(名称一定要和0KB的文件名要一样!)。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第5张图片



5、CMakeDownloadLog.txt日志文本文件里面的下载链接一般访问不到,所以还可以找其他途径:https://github.com/opencv/opencv_3rdparty,点击readme,找到适合自己的版本ffmpeg/master_20200908
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第6张图片


6、然后你可以看到有三个这样的文件,opencv_videoio_ffmpeg.dll和opencv_videoio_ffmpeg.dll是可以直接下载的,但ffmpeg_version.cmake是不可以直接下载的。我直接复制粘贴里面的内容出来丢进0kb的ffmpeg_version.cmake也不行。但是我的小伙伴的电脑可以,我也不知道这是为什么。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第7张图片


7、在上一张的图片上点开ffmpeg_version.cmake,然后点Raw全屏查看。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第8张图片


8、就如下图(图片太大就放小点了),然后右击网页->另存为->文件名要写成ffmpeg_version.cmake.txt,下载好后去掉.txt,改成ffmpeg_version.cmake
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第9张图片


9、把下载好的上面说的三个文件后,放在D:\Installation directory\opencv\sources.cache\ffmpeg里,然后把名字改成0kb时候的名字。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第10张图片


10、再一次检查D:\Installation directory\opencv\sources.cache里还有哪些是0kb的,如果我提供里的资料里和你的0kb名称不一样,你就要去CMakeDownloadLog.txt好好找一找,看一看,英文不难的。检查完后就可以继续在cmake-gui软件configure了,重复上面的操作。可能还会出现图下红色字体,但是不会影响结果。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第11张图片


11、接下来是,找到OPENCV_EXTRA_MODULES_PATH,添加D:\Installation directory\opencv_contrib-4.5.0\modules路径,然后再点击Generate。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第12张图片


12、结果就是这样了
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第13张图片


二、用vs2019生成install文件
1、双击 D:\Installation directory\opencv\towbuilb下的OpenCV.sln工程,进去后在CMakeTargets下的INSTALL右击,第一次的就点生成,第一次生成失败了,之后就要点重新生成。它生成install时会产生17G~18G的文件在towbuilb里,我的是这样。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第14张图片


2、可能遇到的问题:
出现了无法打开 python37_d.lib 的错误信息,类似的python36_d.lib、python27_d.lib等请参考:
https://blog.csdn.net/weixin_40127330/article/details/99731879


三、重新配置opencv环境:
1、视图->其他窗口->属性管理器->Debug | x64->右击Microsoft.Cpp.x64.user->属性->VC++目录->包含目录,把之前配置好的路径删去,再把
D:\Installation directory\opencv\towbuilb\install\include
D:\Installation directory\opencv\towbuilb\install\include\opencv2
路径添加进去。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第15张图片


2、还有库目录:D:\Installation directory\opencv\towbuilb\install\x64\vc16\lib
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第16张图片


3、链接器->输入->附加依赖项,把D:\Installation directory\opencv\towbuilb\install\x64\vc16\lib
里面带有.lib后缀的文件名添加进去,笨笨的方法就是一个个添加,但是省事的方法也是有的,win10批量获取文件名请参考:
https://blog.csdn.net/u013798595/article/details/113431364
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第17张图片


4、最后还要配置系统的环境变量,我的电脑->高级系统设置->环境变量->Path->编辑
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第18张图片


5、找到原来添加的opencv的路径,把它删去,在原来的位置添加D:\Installation directory\opencv\towbuilb\install\x64\vc16\lib这个路径进去。然后保存退出。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第19张图片


四、测试
1、新建vs工程,写入测试代码。

#include
#include 
#include
using namespace cv;
int main(int argc, char** argv)
{
	Mat src = imread("D:\\Desktop\\test\\129.jpg");//打开图片及照片的路径
	if (src.empty())//判断是不是为空
	{
		printf("不能打开图片!\n");
		return -1;
	}
	namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);//创建窗口,自动开启大小
	imshow("test opencv setup", src);//窗口标题
	waitKey(0);//给一个指令关闭,
	return 0;
}

2、如果提示找不到以.dll为后缀的文件,就到D:\Installation directory\opencv\towbuilb\install\x64\vc16\bin路径下,把对应的文件复制放到C:\Windows\System32路径下,如果嫌麻烦就把所有的.dll都复制过去就可以了。最后就可以愉悦地打开图片啦。
VS2019+opencv4.5+CMake编译opencv_contrib-4.5.0模块(较为详细教程)_第20张图片

我在编译时遇到缺少的文件都在.cache里:
链接:https://pan.baidu.com/s/1aqF-77CdbC9yF4o4JFrn7Q
提取码:coao

你可能感兴趣的:(opencv,c++)