Qt使用opencv之hello world
编译PC环境
编译准备
1.既然是mingw32编译,大前提是你需要安装qt并且带mingw编译器,我这里安装的是Qt5.10
2.安装cmake,这里安装的cmake-3.16.2
3.下载源码:https://opencv.org/releases/,选择版本3.4.10。
4.设置环境变量
opencv编译
1.把源码解压到一个目录,并且新建一个目录用来作为编译目录。
打开cmake-gui
设置好源码目录和编译目录。点击Configure,如上图配置,点击next后把mingw32相应的gcc和g++编译器的路径设置好。配置完成后。
把WITH_OPENGL、WITH_QT、EANBLE_CXX11、这几个选项勾上,
需要注意的是EANBLE_CXX11这个一定的勾上不然后面编译会报错
再次点击confgure,
很不幸还是报错了,提示
Add the installation prefix of “Qt5” to CMAKE_PREFIX_PATH or set “Qt5_DIR” to a directory containing one of the above files
意思是Qt5目录找不到,那就设置一下
然后再次点击configure,完成后点击generate。
以上完成后就可以开始编译了,打开命令行工具开始编译:
mingw32-make.exe -j8
到此并非万事大吉,中间编译过程可能一波三折。
这里把遇到的一些错误贴出来以供大家参考。
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时间了。
安装:mingw32-make.exe install
opencv之hello world
经过一番折腾,我们可以开始享受使用过程了。
新建一个Qt工程并配置好pro
图片显示代码。相当于一个hello world,哈哈。
演示效果
这里会出现2个窗口,一个Qt的,一个cv的窗口。
作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正