《ofo车牌识别》研发心得02-Qt+OpenCV环境搭建

举报
motozilog 发表于 2018/12/30 19:56:44 2018/12/30
【摘要】 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的目录)和目标(目标可以随意)

1.png

3.png


2.点Configure

4.png

3.选择编译器→MinGW Makefiles→Specify native compilers

5.png

4.设置编译器路径

6.png

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


7.png

8.png


6.再点一次Configure,继续报错。提示没有合适的Qt版本

9.png


查看日志

10.png

查看系统变量(控制面板→系统→高级系统设置→高级→环境变量)居然是TDM-GCC在前.....

所以将Qt的移前

11.png


不过还是不行,手工指定再试一次

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

12.png


再点Configure,继续报错

同样还要设

Qt5OpenGL_DIR

C:/QT/Qt5.6.2/5.6/mingw49_32/lib/cmake/Qt5OpenGL


13.png

再点Configure,上面己经没有红色,再次检查是否己勾选“WITH_QT”

14.png

7.再点Configure如果没有红色,就可以点Generate。不要理会报错,看到最后的“Generating done”

15.png


光是来到这一步己经这么坑,前前后后折腾cmake就已经用了2、3个晚上。T_T..................


4.编译前做准备

1.先到opencv\sources\cmake找到OpenCVCompilerOptions.cmake

16.png


2.将add_extra_compiler_option(-Werror=non-virtual-dtor)注释掉(在第79行的位置)

17.png

3.去opencv\QTbuild目录打开命令行进行编译

18.png

mingw32-make -j 10

19.png

狂等直到100%(耗时比较长)

20.png

5.安装

mingw32-make install

21.png

6.打包编译好的文件

build中的include目录

CMake目标路径 下的bin和lib文件夹

复制到一个新的目录

22.png

23.png

24.png

7.在path变量中添加上面的bin路径

25.png


8.测试Qt+OpenCV运行正常

1.Qt中新建一个工程,名为test

26.png


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.测试运行

27.png


至此Qt+OpenCV环境搭建完成!!![欢呼][欢呼][欢呼]

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。