PC:Thinkpad T480 Windows10 64位
cmake:cmake-3.16.2-win64-x64.msi
链接: https://pan.baidu.com/s/1lfwLCXun0FCSounZW33-zg 提取码: nvk9
或者官网下载:https://cmake.org/download/
QT:qt-opensource-windows-x86-5.13.0.exe
链接: https://pan.baidu.com/s/1rNMRJBYTvGXQwLqj-lrwrg 提取码: w2nf
或者官网下载:http://download.qt.io/archive/qt/5.13/5.13.0/
opencv:opencv-2.4.9.zip
链接: https://pan.baidu.com/s/14QuJWwAIPWYjftMTGNMh5A 提取码: vcui
或者官网下载:https://opencv.org/releases/page/5/
cmake安装步骤如下:
双击cmake-3.16.2-win64-x64.msi开始安装
点击next,继续
勾选accept license,然后点击next继续
选择“Add CMake to the system PATH for all users”以及“Create CMake Desktop Icon”,这一步是为所有用户添加cmake环境变量以及创建桌面图标,然后点击next继续
点击install,继续
点击finish完成安装,完成安装后的桌面图标以及程序运行界面如下:
3.2 qt & qt creator安装
双击qt-opensource-windows-x86-5.13.0.exe开始安装
点击next继续
点击skip,跳过配置继续
点击下一步继续
点击下一步继续
在QT->QT5.13.0选项中,勾选MinGW 7.3.0 64-bit选项
在Developer and designer tools QT creator 4.9.1中勾选QT creator 4.9.1 CDB debugger support选项和MinGW 7.3.0 64-bit选项,然后点击下一步继续
勾选"read and accept license",然后点击下一步继续
点击下一步继续
点击安装继续
取消勾选launch QT creator选项,然后点解完成。
在此电脑上邮件选择属性,然后点击高级系统设置,在弹出窗口中点击环境变量,在弹出的环境变量窗口中,双击
点击新建,将安装后的MinGW环境变量加入,如下:
注意:此处仅供参考,具体的环境变量位置还需要根据刚才安装的QT creator安装位置来确认。
3.3 编译opencv源码
将下载好的opencv 2.4.9压缩包解压,如下:
运行CMake,然后再运行界面中配置opencv源码以及编译输出的位置,参考如下:
然后点击configure
在弹出窗口中,选择MinGW Makefiles,以及选择“Specify native compilers”选项,然后点击next继续
然后配置C,C++编译器位置,注意:就是选择刚才添加的环境变量bin目录下的gcc,g++编译器。然后点击finish继续。
如果无误,CMake就会开始运行。
如果无误,在log中会有Configuring done信息。
然后在search栏搜索“WITH”,在搜索结果中勾选“WITH_OPENGL”和“WITH_QT”,然后重新点击confiure按钮。
注意:不要误选了“WITH_OPENCL”选项。
如果没有错误,就点击Generate按钮。
如果无误的话,后有Generating done信息出现。
在windows终端中,进入opencv的输出目录,如下:
在命令行中执行:mingw32-make -j16
注意:-j16选项可以根据自己的PC配置来更改,如果数字太大,PC就会太卡,可以用-j4等。
如果编译过程中出现了address错误,如下:
就需要修改C:\Qt\opencvlib\modules\contrib\CMakeFiles\opencv_contrib.dir\flags.make文件,去除-Werror=address编译选项。
然后重新执行:mingw32-make -j16
如果执行没有错误了,就执行:mingw32-make install
如果没有错误产生,就表示我们已经成功编译出了opencv库文件。
编译出来的文件在C:\Qt\opencvlib\install\x64\mingw目录,注意:此位置和个人配置有关。
然后需要在环境变量中添加我们编译出来的bin,lib环境变量。如下:
至此,已经配置好了opencv开发环境。
如果需要使用opencv,还需要再QT工程文件xxxxx.pro中添加如下配置:
INCLUDEPATH +=C:/Qt/opencvlib/install/include
INCLUDEPATH +=C:/Qt/opencvlib/install/include/opencv
INCLUDEPATH +=C:/Qt/opencvlib/install/include/opencv2
LIBS +=C:/Qt/opencvlib/install/x64/mingw/lib/libopencv_*.a
注意:上面几句需要放在.pro文件的末尾,否则可能会导致一些问题。
4.1 创建一个QT工程
点击new project
选择Qt Widgets Application,点解choose。
命名为test,配置好工程保存路径后,点击下一步
点击下一步
点击下一步
点击完成。
将测试的图像放置在C:\Qt\test目录下,注意:根据自己的喜好放置即可,在下文的代码中采用的是图像的绝对地址
在test.pro文件中添加opencv的header和lib路径:
双击Forms栏中的mainwindow.ui文件,在display Widgets栏中拖拽一个Label控件到ui界面中
Label控件重命名为:show picture
mainwindow.h文件的内容如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
namespace Ui {
class MainWindow;
}
using namespace cv;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
int showImage();
Mat srcImg;
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp内容如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
int MainWindow::showImage(){
Mat temp;
QImage Qimg;
srcImg = imread("C:/Qt/test/timg.jpg");
cvtColor(srcImg, temp, CV_BGR2RGB);//BGR convert to RGB
Qimg = QImage((const unsigned char*)(temp.data), temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
ui->label->setPixmap(QPixmap::fromImage(Qimg));
ui->label->resize(Qimg.size());
ui->label->show();
return 0;
}
MainWindow::~MainWindow()
{
delete ui;
}
main.cpp内容如下:
#include "mainwindow.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
w.showImage();
return a.exec();
}
点击运行:
如果构建以及编译无误,就会有下面的运行结果:
至此,已经完整配置了QT开发中opencv环境,以及opencv验证。
注意注意:
由于QT creator工作环境问题,或者说是一个bug,在修改文件后或者其它情况下,构建以及编译失败,请执行如下步骤:
1:点击构建->执行qmake
2:删除工程中以及构建的文件build-test-Desktop_Qt_5_13_0_MinGW_64_bit-Debug
然后重新点击运行按钮:
此处谨记,可能会解决问题。