一 、下载opencv
上官网(https://opencv.org/releases/)下载windows版本的opencv安装包,如4.1.2
二、安装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/)下载
安装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\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)
勾选上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);
}