Qt编译配置OpenCV+opencv_contrib(使用cmake)

本文使用环境

bash 复制代码
OpenCV: 4.7.0
cmake: 3.30.2
Qt: 5.12.1

一、配置环境变量

安装好OpenCV、Qt、cmake后,应配置好一下环境变量:

二、编译OpenCV

  1. 打开cmake,编译的源码路径选择opencv文件夹中的sources目录,在opencv文件夹下新建一个文件夹作为编译后存放路径

  2. 选择路径后点击Configure按钮,然后选择工程类型为MinGw Makeifile,编译器分别选择QtTool中的gcc和g++

  1. 点击finish后,等待configure done出现

  2. 接下来分别将WITH_QTWITH_OPENGL勾选

如果需要opencv_contrib的话,可以在OPENCV_EXTRA_MODULES_PATH设置opencv_contrib源码路径

然后再次点击Configure , 完成后点击Generate

  1. 进入编译目标路径,执行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

  1. 配置OpenCV环境

    对计算机右键->属性->高级系统配置->环境变量>Path 变量里加入 opencv安装路径 的 bin 文件夹的路径,要重启电脑后才能生效

  2. 新建一个Qt控制台项目,给qt项目添加头文件路径和静态库路径

    在.pro文件中添加以下代码。每次新建项目都要添。

  3. 编写测试代码

    在新建项目的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;
}

点击运行按钮,图片显示出来即可。

相关推荐
桥田智能2 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
梦想三三2 天前
OpenCV银行卡数字识别项目(图像预处理与字符分割)
人工智能·opencv·计算机视觉
森G2 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
森G2 天前
77、线程池原理和实现------服务器源码解析----云视频服务项目
服务器·c++·qt
森G2 天前
71、打包发布---------打包发布
c++·qt
初圣魔门首席弟子2 天前
Node.js 详细介绍(知识库版)
windows·qt·node.js·知识库
C++ 老炮儿的技术栈2 天前
Qt工控实战:自研机器人TCP长连接客户端(粘包处理+心跳保活+自动重连完整源码解析)
qt·tcp/ip·机器人
郝学胜-神的一滴2 天前
CMake 019:程序生成与清理全解析
开发语言·c++·qt·程序人生·软件构建·cmake
武子康2 天前
调查研究-180 roboflow/supervision:计算机视觉工程里的“胶水层“,为什么值得关注?
人工智能·opencv·计算机视觉·chatgpt·llm·向量化
森G2 天前
76、仿ASIO实现的Linux c++服务器------服务器源码解析----云视频服务项目
c++·qt