《ofo车牌识别》研发心得02-Qt+OpenCV环境搭建
【摘要】 Qt5.6.2+OpenCV3.1.0环境搭建。真的难!难!难!
1年多前Android上只有OpenCV一个库,再难也得忍.......
1.在网上下载3个文件:
qt-opensource-windows-x86-mingw492-5.6.2.exe
cmake-3.6.3-win32-x86.zip
opencv-3.1.0.exe
2.安装qt 5.6.2,截图省略
3.在cmake中配置opencv编译参数
1设好源(见再下一张图,要选CMakeLists.txt的目录)和目标(目标可以随意)
2.点Configure
3.选择编译器→MinGW Makefiles→Specify native compilers
4.设置编译器路径
C为:C:/QT/Qt5.6.2/Tools/mingw492_32/bin/gcc.exe (请根据自己的目录进行选择)
C++为:C:/QT/Qt5.6.2/Tools/mingw492_32/bin/g++.exe (请根据自己的目录进行选择)
5.报错,说opencv_ffmpeg.dll下载失败
将opencv\build\bin目录中的
opencv_ffmpeg310.dll
opencv_ffmpeg310_64.dll
复制到opencv\sources\3rdparty\ffmpeg目录,并改名为
opencv_ffmpeg.dll
opencv_ffmpeg_64.dll
6.再点一次Configure,继续报错。提示没有合适的Qt版本
查看日志
查看系统变量(控制面板→系统→高级系统设置→高级→环境变量)居然是TDM-GCC在前.....
所以将Qt的移前
不过还是不行,手工指定再试一次
QT_QMAKE_EXECUTABLE | C:/QT/Qt5.6.2/5.6/mingw49_32/bin/qmake.exe |
Qt5Concurrent_DIR | C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5Concurrent |
Qt5Core_DIR | C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5Core |
Qt5Gui_DIR | C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5Gui |
Qt5Test_DIR | C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5Test |
Qt5Widgets_DIR | C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5Widgets |
再点Configure,继续报错
同样还要设
Qt5OpenGL_DIR | C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5OpenGL |
再点Configure,上面己经没有红色,再次检查是否己勾选“WITH_QT”
7.再点Configure如果没有红色,就可以点Generate。不要理会报错,看到最后的“Generating done”
光是来到这一步己经这么坑,前前后后折腾cmake就已经用了2、3个晚上。T_T..................
4.编译前做准备
1.先到opencv\sources\cmake找到OpenCVCompilerOptions.cmake
2.将add_extra_compiler_option(-Werror=non-virtual-dtor)注释掉(在第79行的位置)
3.去opencv\QTbuild目录打开命令行进行编译
mingw32-make -j 10
狂等直到100%(耗时比较长)
5.安装
mingw32-make install
6.打包编译好的文件
build中的include目录
和
CMake目标路径 下的bin和lib文件夹
复制到一个新的目录
7.在path变量中添加上面的bin路径
8.测试Qt+OpenCV运行正常
1.Qt中新建一个工程,名为test
2.在test.pro中添加(路径请自己改)
INCLUDEPATH += C:\QT\opencvok\include\opencv\ C:\QT\opencvok\include\opencv2\ C:\QT\opencvok\include
LIBS += -L C:\QT\opencvok\lib\libopencv_*.a |
3.修改main.cpp为
#include<QCoreApplication>
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(void)
{
//QCoreApplicationa(argc,argv);
//returna.exec();
cout<<"opencv"<<endl;
cv::Mat src=cv::imread("d:/a.jpg"); //绝对路径。路径用/而不用\,否则会报错
cv::namedWindow("test");
cv::imshow("test",src);
cv::waitKey(0);
cv::destroyWindow("test");
return 0;
}
4.测试运行
至此Qt+OpenCV环境搭建完成!!![欢呼][欢呼][欢呼]
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)