1.opecv编译-----在windows下用Qt5自带的mingw编译

一 、下载opencv

上官网(https://opencv.org/releases/)下载windows版本的opencv安装包,如4.1.2
Opencv-4.1.2 windows下载

二、安装Opencv

双击安装
双击安装到某个目录下,安装完目录结构如下在这里插入图片描述
source就是源码目录,build里面有编译好的文件,如果是vc开发,那就可以直接用了,即库opencv_world412.dll。
该库是所有opencv库的集合,对应的opencv_world412.lib在bin同级目录下的lib文件夹下面,直接包含opencv_world412到自己的vc工程里面即可开始开发了。
库目录

三、下载安装CMake

opencv_world412.dll过于庞大,有差不多50M,根据实际需求,一般会用源码编译适合自己的库,如用CMake和mingw编译适合Qt的库。

下载CMake软件:
上官网(https://cmake.org/download/)下载
https://cmake.org/download
安装CMake软件:
下载完按照提示一步步安装即可,安装时记得勾选把CMake的安装目录加到环境变量
装完记得确认PATH环境变量有没有cmake,如:

D:\Program Files\CMake\bin

三、mingw环境变量配置

配置mingw到PATH环境变量,如

D:\Qt\Qt5.12.6\Tools\mingw730_64\bin

可以顺便一起配置下Qt的环境变量

D:\Qt\Qt5.12.6\5.12.6\mingw73_64\bin

四、cmake生成

打开CMake软件,把opencv的源码加入,并配置编译目录
在这里插入图片描述
配置完点击configure按钮配置,弹出对话框选择mingw Makefiles,并选择第二个手动配置在这里插入图片描述

点击下一步选择mingw的gcc.exe和g++.exe路径,路径在Qt的安装目录Tools下面(D:\Qt\Qt5.12.6\Tools\mingw730_64\bin),配置下点击Finish完成
在这里插入图片描述

再点击configure按钮配置,如果有提示报错ffmpeg库下载错误,打开配置编译目录下的CMakeDownloadLog.txt,按提示复制链接URL到浏览器下载库到编译目录下的3rdparty\ffmpeg(ffmpeg没有的话手动创建)目录下
最方便的是到刚才opencv安装的目录下的build\bin目录下拷贝opencv_videoio_ffmpeg412.dll
拷贝这两个文件到我们配置的编译目录(opencv\bui\3rdparty\ffmpeg)下,拷贝完记得重命名,即去掉库版本号412即可

如果有报ffmpeg_version.cmake下载失败,同样可直接按照提示复制链接到浏览器下载ffmpeg_version.cmake到opencv\bui\3rdparty\ffmpeg下,下面是文件里面的内容例子

set(FFMPEG_libavcodec_FOUND 1)
set(FFMPEG_libavformat_FOUND 1)
set(FFMPEG_libavutil_FOUND 1)
set(FFMPEG_libswscale_FOUND 1)
set(FFMPEG_libavresample_FOUND 1)

set(FFMPEG_libavcodec_VERSION 58.54.100)
set(FFMPEG_libavformat_VERSION 58.29.100)
set(FFMPEG_libavutil_VERSION 56.31.100)
set(FFMPEG_libswscale_VERSION 5.5.100)
set(FFMPEG_libavresample_VERSION 4.0.0)

如果全部文件都有了还一直提示md5校验错误,可修改opencv源码里面md5值为当前文件的MD5值(即log里面提示的值),源码位置:opencv\sources\3rdparty\ffmpeg\ffmpeg.cmake,按提示修改:

ocv_update(FFMPEG_BINARIES_COMMIT "197f87f7e811a9ded35d989b37e50501ff6afaa4")
ocv_update(FFMPEG_FILE_HASH_BIN32 "ab380c9dde361f30dd3604f88eef6c48")
ocv_update(FFMPEG_FILE_HASH_BIN64 "90260a4da737fc045c9279567313ee9d")
ocv_update(FFMPEG_FILE_HASH_CMAKE "75c9aefa9c6e329534d0320c7be8b864")

其他配置:
在cmake的配置对话框里配置上下面几个选项

CMAKE_C_FLAGS和 CMAKE_CXX_FLAGS配置上
在这里插入图片描述

-Wa,-mbig-obj

配置生成release版本或者debug版本(默认debug版本,生成的库会带个d)
配置生成release版本或者debug版本

勾选上WITH_OPENGL
在这里插入图片描述

勾选上WITH_QT
在这里插入图片描述

再点击configure,应该会报错Qt5_DIR库没配置,选择配置qt5的cmake路径,如

D:/Qt/Qt5.12.6/5.12.6/mingw73_64/lib/cmake/

再点击configure,这时应该就可以了(如果还有报错可以参考其他教程,总之一直点击直到没错误为止,当然如果实在有一些警告可以自己判断是否要不要忽略)

生成前记得确认我们安装目录位置哦:
在这里插入图片描述

configure都没错了记得点击generate按钮
configure都没错了记得点击generate按钮
configure都没错了记得点击generate按钮

五、编译

在编译目录下打开powershell(或者cmd)窗口,输入命令开始编译,编译前记得把烦人的某数字杀毒软件关掉,如果电脑性能不是很好,可以把-j 10改小点

mingw32-make.exe -j 10

五、安装

mingw32-make.exe install

安装完安装目录install\x64\mingw\bin就有我们的库文件了

在这里插入图片描述
可以看到每个功能都有一个dll文件,如果还是想要world.dll那个大文件,可以在configure勾选上BUILD_opencv_world,这样就不会生成这么多文件,只会有world.dll那个大文件

六、测试

把库包含进去,头文件也在install里面,下面是一段显示图片的测试代码

#include <opencv2/opencv.hpp> //头文件
using namespace cv; 

int main()
{
	// 【1】读入一张图片
	Mat img=imread("1.jpg");
	// 【2】在窗口中显示载入的图片
	imshow("1.jpg",img);
	// 【3】等待6000 ms后窗口自动关闭
	waitKey(6000);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值