本文使用环境
bash
OpenCV: 4.7.0
cmake: 3.30.2
Qt: 5.12.1
一、配置环境变量
安装好OpenCV、Qt、cmake后,应配置好一下环境变量:
二、编译OpenCV
-
打开cmake,编译的源码路径选择opencv文件夹中的sources目录,在opencv文件夹下新建一个文件夹作为编译后存放路径
-
选择路径后点击
Configure
按钮,然后选择工程类型为MinGw Makeifile
,编译器分别选择QtTool
中的gcc和g++
-
点击
finish
后,等待configure done
出现 -
接下来分别将
WITH_QT
和WITH_OPENGL
勾选
如果需要opencv_contrib的话,可以在OPENCV_EXTRA_MODULES_PATH
设置opencv_contrib源码路径
然后再次点击Configure
, 完成后点击Generate
- 进入编译目标路径,执行
mingw32-make -j 4
命令
编译过程中可能会出现报错:temporary of non-lteral type 'google::protobuf::internal::CallOnceInitializedMutex<std::mutex>'in a constant expression
进入报错的相应文件,将以下代码注释:
再次执行mingw32-make -j 4
命令,成功后再执行命令mingw32-make install
此时已经默认安装到D:/opencv/mingw_build/install目录下,其中包含如下代码
三、在Qt中使用OpenCV
-
配置OpenCV环境
对计算机右键->属性->高级系统配置->环境变量>Path 变量里加入 opencv安装路径 的 bin 文件夹的路径,要重启电脑后才能生效
-
新建一个Qt控制台项目,给qt项目添加头文件路径和静态库路径
在.pro文件中添加以下代码。每次新建项目都要添。
-
编写测试代码
在新建项目的main.cpp文件中写下以下代码:
cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
cout << "Hello World!" << endl;
Mat img = imread("E:/computer/C++_plan/Qt_program/cvTest/2.jpg");
Mat reimg;
resize(img, reimg, { 900, 512 });
imshow("test", reimg);
waitKey();
return 0;
}
点击运行按钮,图片显示出来即可。