QT+OpenCV配置

news/2024/11/22 17:43:39/

QT+OpenCV配置

  • 1 下载CMake
  • 2 安装CMake
  • 3 下载OPenCV
  • 4 配置环境变量
    • 4.1 配置QT环境变量
    • 4.2 配置CMake环境变量
    • 4.3 重启电脑生效
  • 5 CMake编译OPenCV
    • 5.1 解决报错
  • 6 测试

1 下载CMake

链接:https://cmake.org/download/

在这里插入图片描述

2 安装CMake

在这里插入图片描述
在这里插入图片描述

3 下载OPenCV

链接:https://opencv.org/
在这里插入图片描述
在这里插入图片描述
新建两个文件:
opencv_source_4.7.0:存放OPenCV的源码
opencv_build_4.7.0:存放OPenCV编译出来的东西

在这里插入图片描述
在这里插入图片描述

4 配置环境变量

4.1 配置QT环境变量

将你使用的编译器加入到环境变量中,我使用的是mingw 64bit,步骤如下:

  1. 找到QT编译器路径
    在这里插入图片描述
  2. 加入到环境变量中

4.2 配置CMake环境变量

在这里插入图片描述
在这里插入图片描述

4.3 重启电脑生效

5 CMake编译OPenCV

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Compilers路径

C:D:\qt\Tools\mingw810_64\bin\gcc.exe
C++:D:\qt\Tools\mingw810_64\bin\g++.exe

在这里插入图片描述

5.1 解决报错

  1. CMAKE_MAKE_PROGRAM的value修改为对用的makeD:/qt/Tools/mingw810_64/bin/mingw32-make.exe
    在这里插入图片描述
  2. Configuring done之后,还会出现报错。勾选WITH_OPENGL和WITH_QT
    在这里插入图片描述
  3. 查看报错内容发现ffmpge下载报错,如下图:
    在这里插入图片描述
    解决方法:
    进入网址:https://github.com/opencv/opencv_3rdparty/
    在这里插入图片描述
    点击readme,输入ffmpeg,跟选择对应的版本:

(在OpenCV源码路径G:\opencv_source_4.7.0\opencv\sources\3rdparty\ffmpeg下的ffmpeg.cmake文件可以看到该OpenCV版本需要的ffmpeg版本,一般在该文件的第一行)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载后解压,进入ffmpeg文件夹:
在这里插入图片描述
将opencv_videoio_ffmpeg_64.dll、opencv_videoio_ffmpeg.dll、ffmpeg_version.cmake三个文件拷贝到:G:\opencv_source_4.7.0\opencv\sources\.cache\ffmpeg

依次将下载的三个文件的文件名改为对应的这三个文件名即可。(文件名的前半截是该文件的hash码,不能复制错了)

在这里插入图片描述
点击configure,依然会报错:
在这里插入图片描述
4. 修改以下内容
在这里插入图片描述

此时应该没错误了。
点击configure,然后点击generate

打开生成目录:
在这里插入图片描述

将鼠标放在该文件夹界面内,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),进入Windows Powershell,输入 D:/qt/Tools/mingw810_64/bin/mingw32-make.exe

会编译报错如下:

  1. mingw32-make: *** [Makefile:165: all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:1878: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make[1]: *** Waiting for unfinished jobs....
[ 33%] Built target IlmImf
mingw32-make: *** [Makefile:165: all] Error 2

在这里插入图片描述
解决办法:
cmake界面按钮: add Entry —>>> BOOL —>>> OPENCV_VS_VERSIONINFO_SKIP 打钩
在这里插入图片描述
出错了把之前的make clean掉
在这里插入图片描述

安装 :D:/qt/Tools/mingw810_64/bin/mingw32-make.exe install

加入环境变量:G:\opencv_build_4.7.0\install\x64\mingw\bin

6 测试

  1. pro文件中加入
INCLUDEPATH += G:\opencv_build_4.7.0\install\include
LIBS += G:\opencv_build_4.7.0\lib\libopencv_*.a
  1. MainWindow中加入
  Mat image=imread("1.png",1);//一定要使用绝对路径,其他可以回报错namedWindow( "Display window", WINDOW_AUTOSIZE );imshow( "Display window", image );

http://www.ppmy.cn/news/57120.html

相关文章

Java中Stream流式计算的用法详解

Java中Stream流式计算的用法详解 在Java 8之后,引入了Stream API,它是一个函数式编程的思想,其主要作用是将集合Stream化,可以使用一条语句对集合进行过滤、排序、统计等多种操作。接下来我们将详细介绍Java中Stream流式计算的用…

路由表和转发表

路由表和转发表 当一台设备收到一个数据包时,它会查看路由表或转发表,以确定应该将数据包发送到哪个接口或设备,这就需要使用表项(Entry)来描述每个目标的路径。 路由表中的表项通常包括以下信息: 目标网…

云原生Istio架构和组件介绍

目录 1 Istio 架构2 Istio组件介绍2.1 Pilot2.2 Mixer2.3 Citadel2.4 Galley2.5 Sidecar-injector2.6 Proxy(Envoy)2.7 Ingressgateway2.8 其他组件 1 Istio 架构 Istio的架构,分为控制平面和数据面平两部分。 - 数据平面:由一组智能代理([En…

基于STM32F103-HAL库-IAR的BOOT和APP编写

前言: 在单片机中,将程序分为boot和app,这样可以实现一些功能:使用串口更新app等等; 需求: 编写boot和sys程序段,分别放在flash内存不同位置,先执行boot然后执行sys:boo…

Doris(20):Doris的函数—数学函数

1 查看函数名 show builtin functions in test_db; 2 abs(double a) 功能: 返回参数的绝对值 返回类型:double类型 使用说明:使用该函数需要确保函数的返回值是整数。 3 acos(double a) 功能: 返回参数的反余弦值 返回类型:double类型 MySQL 中反余弦函数 ACOS(…

数据结构篇四:栈

文章目录 前言1.栈1.1 栈的概念及结构1.2 栈的实现 2.栈功能的解析及实现2.1 栈的创建2.2 初始化2.3 入栈2.4 出栈2.5 检查栈是否为空2.6 获取栈顶元素2.7 栈中的有效元素个数2.8 销毁 3.代码实现3.1 Stack.h3.2 Stack.c3.3 test.c 4.总结 前言 前面学习的一些结构都比较普通&a…

NFT Insider #93:The Sandbox启动Mega City 3土地销售,YGG​与AlphaTitans合作

引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…

【第十一届泰迪杯B题】产品订单的数据分析与需求预测

文章目录 一、问题背景二、数据说明三、需要解决的问题3.1 探索性数据分析3.2 模型建立与求解四、数据集下载4.1 示例数据4.2 训练全部数据4.3 最后测试全部数据五、比赛时间点说明一、问题背景 近年来企业外部环境越来越不确定,复杂多变的外部环境,让企业供应链面临较多难题…