【QT】QT搭建OpenCV环境

news2024/9/28 1:07:28

QT/OpenCV

      • 01、开始之前
      • 02、QT
      • 03、CMake
      • 04、OpenCV
      • 05、配置
      • 06、测试

01、开始之前

本文版本:
1、QT:Based on Qt 5.12.2 (MSVC 2017, 32 bit),编译方式是MinGW
2、CMake:cmake-3.27.0-rc4-windows-x86_64.msi
3、OpenCV:OpenCV – 4.5.1
4、windows: win11/win10都一样

说明一下,OpenCV不要装太新的版本,因为本文方式使用CMark的方式。如果安装了最新的那几个版本可能会导致编译OpenCV的时候出现很多源代码错误,当然有其他方式可以解决,但是太麻烦,回退低版本就能解决兼容问题。(看个人)

02、QT

QT的安装这里不做介绍,傻瓜式安装,只是在选择模块的时候,如果内存足够就全部勾选,如果内存不够,以后用到需要的模块时可能就比较麻烦,这点是不如VS的,可以追加下载,QT我研究过,没搞出来,都是重新安装的。

QT官网的下载可能会很慢,国内有镜像网站如下:
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/

03、CMake

CMake接触不多,这里记录一下。

CMake:

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

官网地址:https://cmake.org/download/

截止2023-07-10,最新版本是3.27.0
在这里插入图片描述

这里我已经安装过了,所以图片我直接网上找了
在这里插入图片描述
在这里插入图片描述
下面这一步很重要,不然就得自己手动去PATH环境添加Cmake的环境变量了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待安装完成先不管了,待会儿需要用到。

04、OpenCV

OpenCV的介绍这里不做介绍,详情可以参考另外一位博主的博客:https://blog.csdn.net/m0_60720471/

本文版本:
在这里插入图片描述
截止当前最新版本:
在这里插入图片描述
下载windows版本,然后运行exe即可在当前exe文件夹下面生成一个同名文件夹。

下面我截图到这一步,有哪些环境变量:
在这里插入图片描述

05、配置

进行到这里,就可以进行Cmake的编译了,这里进入Cmake安装目录下的bin,双击exe运行起来。
下面所有的图和路径等根据实际安装路径决定,图是网上找的。

在这里插入图片描述

Where is the source code: C:\opencv\sources
Where to build the binaries: C:\opencv\sources\opencv-build(opencv-build这个文件夹要新建)

保持默认MinGW Makefiles,点击Specify native compilers,再next:
在这里插入图片描述

C D:/Qt/Qt5.12.9/Tools/mingw730_64/bin/gcc.exe
C++ D:/Qt/Qt5.12.9/Tools/mingw730_64/bin/g++.exe
Fortran不用管

在这里插入图片描述

下一步:
在这里插入图片描述
Configuring done之后,会出现一大片红的,不用管,下拉将WITH_OPENGL和WITH_QT选中即可,然后再次点击Configure:
在这里插入图片描述
此时仍会有红色出现,继续按照下一步配置:
在这里插入图片描述
依次将下面的值设置好:

Set Qt5Concurrent_DIR to D:\Qt\Qt5.12.1\5.12.1\mingw73_64\lib\cmake\Qt5Concurrent
Set Qt5Core_DIR to D:\Qt\Qt5.12.9\5.12.9\mingw73_64\lib\cmake\Qt5Core
Set Qt5Gui_DIR to D:\Qt\Qt5.12.9\5.12.9\mingw73_64\lib\cmake\Qt5Gui
Set Qt5OpenGL_DIR to D:\Qt\Qt5.12.9\5.12.9\mingw73_64\lib\cmake\Qt5OpenGL
Set Qt5Test_DIR to D:\Qt\Qt5.12.9\5.12.9\mingw73_64\lib\cmake\Qt5Test
Set Qt5Widgets_DIR to D:\Qt\Qt5.12.9\5.12.9\mingw73_64\lib\cmake\Qt5Widgets
Set Qt5_DIR to D:\Qt\Qt5.12.9\5.12.9\mingw73_64\lib\cmake\Qt5

再次点击Configure之后,红色消失,最后点击Generate:
在这里插入图片描述
Generate完成之后,关闭Cmake即可,此时进入之前我们新建的文件夹D:\OpenCV4.5.1\opencv\opencv-build
我这里名字是install。
在这里插入图片描述
将鼠标放在该文件夹界面内,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),进入Windows Powershell,输入

mingw32-make -j 32   // 这里8是表示多线程处理,你的配置够高可以加大这个数字,加快编译速度,反之,减少就行。

等待编译完之后继续输入:

mingw32-make install

等待完成之后将编译后的路径配置进环境变量:
在这里插入图片描述
到这里,一切就绪,打开QT测试。

06、测试

新建QT项目这里不多说,创建一个QMainWindow即可。

.pro文件中添加如下:

INCLUDEPATH += \
            C:\opencv\install\install\include \

LIBS += \
        C:\opencv\install\lib\libopencv_*.a \

在这里插入图片描述

这里我不贴完整代码了,项目里面的OpenCV+海康威视了。

下面是一个简单的示例:
在这里插入图片描述
记录一下!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年值得入手的开放式耳机推荐,蓝牙耳机的选购指南分享推荐

身为一个音乐爱好者,出于对音质和佩戴舒适的追求,也有入手了很多品类的耳机,其中不乏有有线耳机、无线蓝牙耳机,两种不同的音频传输方式大类,其各自所拥有的特性也是不同的。而居于后者的无线蓝牙耳机,在现…

【Java基础教程】(八)面向对象篇 · 第二讲:Java 数组全面解析——动态与静态初始化、二维数组、方法参数传递、排序与转置、对象数组、操作API~

Java基础教程之面向对象 第二讲 本节学习目标1️⃣ 概念1.1 动态初始化1.2 静态初始化 2️⃣ 二维数组3️⃣ 数组与方法参数的传递4️⃣ 数组排序5️⃣ 数组转置6️⃣ 对象数组7️⃣ 数组操作API7.1 数组复制7.2 数组排序 🌾 总结 本节学习目标 掌握数组的动态及静…

水库监测中仪器安装及监测结果的要求有哪些

水库监测点位布设需要根据水库运行情况和安全监测的需求来进行,一般分为基础监测点位和重要部位监测点位,基础监测点位主要包括上游水位、上游库水位变幅、库岸稳定以及上下游坝坡稳定等。重要部位监测点位主要包括坝轴线、溢洪道进口和泄水洞出口等部位…

前端报错:“Uncaught SyntaxError: missing ) after argument list“只是参数列表后面缺少 “)”?

报错"Uncaught SyntaxError: missing ) after argument list",字面翻译过来的意思:语法错误: 参数列表后面缺少 )。 一直以为是少了 一个小括号找了好久 发现并不是 据提示是参数列表的问题,找到文件中存在参数列表的地方。如下图…

如何利用MyBatis完成web项目的环境搭建(导入核心依赖包、日志、编译环境,配置文件以及Druid连接池)

目录 项目环境搭建 servlet实例 核心依赖 导入日志 编译环境 mapper注册 resouces中 dao中 MyBatis配置文件 实例效果 导入配置文件 Druid连接池 Druid连接池是什么? 如何配置Druid连接池? 实体类 实例效果 项目环境搭建 1.在pom.xml中…

STM32 Proteus UCOSII系统锅炉报警系统设计压力温度水位-0059

STM32 Proteus UCOSII系统锅炉报警系统设计压力温度水位-0059 Proteus仿真小实验: STM32 Proteus UCOSII系统锅炉报警系统设计压力温度水位-0059 功能: 硬件组成:51单片机 8位数码管MAX7219数码管驱动模块多个按键LED灯蜂鸣器 1.准确测量…

IronOCR for .NET 2023.7.0 Crack

IronOCR for .NET 关于 读取 .NET 应用程序中图像和 Pdf 文本的高级 OCR (光学字符识别) 库。 IronOCR for .NET enables software engineers to read text content from images & PDFs in .NET applications and Web sites. Read text and barcod…

HarmonyOS/OpenHarmony应用开发-程序包安装、卸载、更新流程

一、应用程序包安装和卸载流程 1.开发者 开发者可以通过调试命令进行应用的安装和卸载,可参考多HAP的调试流程。 图1 应用程序包安装和卸载流程(开发者) 2.终端设备用户 开发者将应用上架应用市场后,终端设备用户可以在终端设…

python_day4_dict

字典dict:键值对(无重复,无下标索引) my_dict {python: 99, java: 88, c: 77, c: 66} my_dict2 {} # 空字典 my_dict3 dict() print(f"my_dict:{my_dict},类型为:{type(my_dict)}") print(f"my_dict2:{my_dict2},类型为:…

AI应用系列--- TalkingPhoto 会说话的照片

利用HeyGen的服务可以生成有趣的Talkingphoto,方法有二: 1、访问HeyGen - AI Video Generator 网站,登录后即可根据提示或者案例生成talkingphoto 2、是使用HeyGen的 Discord​​​​​​机器人:https://discord.com/channels/1…

MySQL数据库期末项目 图书馆管理系统

1 项目需求分析 1.1 项目名称 图书馆管理系统 1.2 项目功能 在以前大多部分图书馆都是由人工直接管理,其中每天的业务和操作流程非常繁琐复杂,纸质版的登记信息耗费了大量的人力物力。因此图书馆管理系统应运而生,该系统采用智能化设计&#…

我来为你揭秘如何将音频转文字才简单

曾经有一位聋哑人士,他很想写一本回忆录,但是因为无法听取自己的回忆录音,他不得不寻找其他方法。于是,他试着用一些软件将他的录音转成文字,但是结果却非常糟糕,充斥着大量错误和不连贯的词语。于是&#…

【大虾送书第一期】《高并发架构实战:从需求分析到系统设计》

目录 ✨写在前面 ✨足够真实的高并发系统设计场景 ✨贴合工作场景的设计文档形式 ✨求同存异的典型系统架构案例 🦐博客主页:大虾好吃吗的博客 🦐专栏地址:免费送书活动专栏地址 写在前面 很多软件工程师的职业规划是成为架构师&a…

手机副业哪些靠谱,推荐几个兼职思路

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 下面给大家介绍几个靠谱的兼职项目 1.问答答主 知乎、百度、悟空等渠道做问答,…

【手把手】一篇讲清楚FastDFS的安装及使用

分布式存储发展历程 前段时间618活动火热进行,正是购物的好时机。当我们访问这些电商网站的时候,每一个商品都会有各式各样的图片展示介绍,这些图片一张两张可以随便丢在服务器的某个文件夹中,可是电商网站如此大体量的图片&…

XSS漏洞学习笔记

浏览器安全 同源策略 影响源的因素&#xff1a;host,子域名,端口,协议 a.com通过以下代码: <script scrhttp://b.com/b.js> 加载了b.com上的b.js&#xff0c;但是b.js是运行在a.com页面中的&#xff0c;因此相对于当前打开的页面(a.com)来说&#xff0c;b.js的源就应该…

Nodejs 学习笔记

Author&#xff1a;德玛玩前端 Date: 2023-07-06 Nodejs 一、Nodejs概述 1.1、什么是JavaScript 1995年由Netscape公司退出&#xff0c;后经ECMA统一标准的脚本语言。通常狭义上理解的JS是指在浏览器内置的JS解释器中运行的&#xff0c;主要用途是操作网页内容&#xff0c;实…

跨境电商亚马逊卖家为何要使用云服务器?

云服务器&#xff0c;作为跨境电商亚马逊开店必备的工具之一&#xff0c;深受各方卖家的青睐&#xff0c;由于跨境电商亚马逊平台有着一人一店的规定&#xff0c;但很多卖家朋友&#xff0c;为了获得更多的流量&#xff0c;便去开设多个店铺进行引流&#xff0c;这样操作极易诱…

【数据结构】搜索二叉树/map/set

二叉搜索树&#xff08;搜索二叉树&#xff09; 1.1.二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则…

【爆肝帝,花费3个月整理】金九银十面试季,2023年字节跳动所有,软件测试面试题拿走不谢!(附详细答案解析)

前言 最近有收到一些不同公司的面试题&#xff0c;像字节跳动、网易、美团等&#xff0c;趁着有时间&#xff0c;给大家梳理下&#xff0c;说不定面试能派上用场&#xff0c;大概给大家从以下几个方面来做了整理&#xff1a; 个人信息&#xff1a;(工作/实习经验&#xff0c;…