win10下mingw32编译opencv3.4.10及Qt+opencv配置

Qt使用opencv之hello world

  • 编译PC环境
  • 编译准备
  • opencv编译
  • opencv之hello world
  • 演示效果

编译PC环境

win10下mingw32编译opencv3.4.10及Qt+opencv配置_第1张图片

编译准备

1.既然是mingw32编译,大前提是你需要安装qt并且带mingw编译器,我这里安装的是Qt5.10
2.安装cmake,这里安装的cmake-3.16.2
3.下载源码:https://opencv.org/releases/,选择版本3.4.10。
4.设置环境变量
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第2张图片

opencv编译

1.把源码解压到一个目录,并且新建一个目录用来作为编译目录。
打开cmake-gui
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第3张图片
设置好源码目录和编译目录。点击Configure,如上图配置,点击next后把mingw32相应的gcc和g++编译器的路径设置好。配置完成后。
把WITH_OPENGL、WITH_QT、EANBLE_CXX11、这几个选项勾上,
需要注意的是EANBLE_CXX11这个一定的勾上不然后面编译会报错
再次点击confgure,
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第4张图片
很不幸还是报错了,提示
Add the installation prefix of “Qt5” to CMAKE_PREFIX_PATH or set “Qt5_DIR” to a directory containing one of the above files
意思是Qt5目录找不到,那就设置一下
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第5张图片
然后再次点击configure,完成后点击generate。
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第6张图片
以上完成后就可以开始编译了,打开命令行工具开始编译:
mingw32-make.exe -j8
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第7张图片
到此并非万事大吉,中间编译过程可能一波三折。
这里把遇到的一些错误贴出来以供大家参考。
1.错误1
error:‘sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA’ was not declared inthis scope
[modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj] Error 1

解决办法:打开源码目录找到cap_dshow.cpp
在前面加上 #define STRSAFE_NO_DEPRECATE

2.错误2
error: ‘nullptr’ was not declared in this scope
error: ‘time’ was not declared in this scope
解决办法:ENABLE_CXX11 要勾选上

3.错误3
modules\videoio\src\cap_msmf.cpp you have the error: using invalid field ‘{anonymous}::ComPtr::p’
解决办法:WITH_MSMF 不要勾选

当然出现错误的时候也可以选择把一些模块关掉,比如错误2,不配置test模块,就不会出现此错误。

大概10分钟左右就可编译完成了,接下来就是enjoy时间了。
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第8张图片
安装:mingw32-make.exe install

opencv之hello world

经过一番折腾,我们可以开始享受使用过程了。
新建一个Qt工程并配置好pro
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第9张图片
图片显示代码。相当于一个hello world,哈哈。
win10下mingw32编译opencv3.4.10及Qt+opencv配置_第10张图片

演示效果

这里会出现2个窗口,一个Qt的,一个cv的窗口。win10下mingw32编译opencv3.4.10及Qt+opencv配置_第11张图片
作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正

你可能感兴趣的:(opencv笔记)