QT下运行用MinGW编译的OpenCV简明教程

Requirements

  • Windows 7 or later
  • QT 5.3.0 with MinGW4.8.2 (下载已经编译好的OpenCV可以忽略下面两项)
  • OpenCV 3.2.0
  • CMake

Process

如果要自己编译的话需要下载OpenCV 3.2.0 源码 以及CMake最新版本

如果不想自己编译(编译至少要半小时),可以从我的网盘下载编译好的 OpenCV网盘下载

下载后步骤如下:

  • 解压opencv文件夹到c盘
  • 添加系统环境变量如下两项到Path
    • C:\opencv\build\install\x86\mingw\bin
    • C:\opencv\build\install\x86\mingw\lib
  • 检查QT5.3.0自带的MinGW是否在环境变量中(没有则添加):
    • C:\Qt\Qt5.3.0\5.3\mingw482_32\bin
    • C:\Qt\Qt5.3.0\Tools\mingw482_32\bin
    • C:\Qt\Qt5.3.0\Tools\mingw482_32\i686-w64-mingw32\bin

这样,环境的配置就完成了。

下面可以开始用QT Creater写一个OpenCV的Hello World程序了。

Coding

新建项目

和往常一样,新建Qt Widgets Application,选择Mainwindow类,注意路径不要有中文

引入OpenCV库

打开项目的.pro文件,底部添加如下代码:

1
2
3
4
win32 {
INCLUDEPATH += C:\opencv\build\install\include
LIBS += C:\opencv\build\install\x86\mingw\bin\libopencv_*.dll
}

编写main.cpp

main.cpp代码如下编写即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "mainwindow.h"
#include <QApplication>

#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

cv::Mat img;
img = cv::imread("D:/1.jpg");//图片路径请自定义
if(img.empty())
return 0;
cv::namedWindow("img show");
cv::imshow("img show",img);

return a.exec();
}

样图(我头像):

H61b156d1b3764058b872b644970879a3W

Result

结果示例:

H61ae83e1acd84a11bd4f24be73c43fdaU