Qt opencv编译详细教程(windows版)

news2024/11/26 18:54:06

在Qt中使用opencv这个算法视觉库,前期环境步骤搭建如下:
1、下载cmake。
2、下载opencv库,我这里下载的是opencv-3.3.1版本。
3、没有安装Qt的下载Qt软件,Qt的环境安装部署,这里不做介绍。
4、安装cmake后,在QtCreator中添加cmake。
请添加图片描述

5、将opencv的CMakeList.txt拖到Qt中打开。
在这里插入图片描述

6、进入项目选项,配置opencv,选择opencv头文件库文件的输出目录,我的输出目录在桌面的opencv_out位置,如下图:
在这里插入图片描述

7、取消勾选WITH_IPP,如下图:
在这里插入图片描述

8、取消勾选ENABLE_PRECOMPILED_HEADERS,如下图:

在这里插入图片描述

9、OPENCV_EXTRA_MODULES_PATH设置为空,如下图:
在这里插入图片描述

10、以上都修改后点击如下按钮,当构建完成后,按钮变灰,如下图:
在这里插入图片描述

11、Configuration完成后,会显示如下信息,如下图:
在这里插入图片描述

12、然后勾选install,如下图:
在这里插入图片描述

13、点击编译按钮,如下图:
在这里插入图片描述

14、如果编译到百分之31~32提示如下错误时,如果没有则看下一步:
在这里插入图片描述

修改cap_show.cpp文件,在#include “DShow”前面添加#define NO_DSHOW_STRSAFE,如下图:
在这里插入图片描述
然后重新进行configuration,重新编译。

15、有些环境下可能还需要勾选WITH_QT和WITH_OPENGL选项,但是我的编译场景不需要勾选,小伙伴们看实际情况,如果所有步骤都做了还是报错,可以勾选这两个选项看看。
16、这个时候就编译完成了,编译完成后有如下类似的内容:
在这里插入图片描述

17、然后在自己定义的输出目录可以看到编译生成好的内容。
在这里插入图片描述

18、将include目录和x64\mingw\bin目录拷贝到Qt项目中。
在这里插入图片描述

19、配置opencv到环境变量中,如下图
在这里插入图片描述

20、在QT项目的Pro文件中添加如下内容:

INCLUDEPATH += $$PWD/include
LIBS += $$PWD\bin\libopencv_*.dll

在这里插入图片描述
如果提示库文件链接错误或者接口未定义,你可以将LIBS的路径改为绝对路径试试,如果还是不行可能就是你的opencv版本不对了,或者编译后库文件缺失。

这个时候编译自己的项目,应该就大功告成了。
opencv示例代码,打开本地摄像头。

#include "widget.h"
#include <QApplication>
#include "opencv2/opencv.hpp"
#include <iostream>
#include <QDebug>
using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    VideoCapture cap(0);
    if (!cap.isOpened()) //检查打开是否成功
    {
        qDebug()<<"打开失败";
        return 0;
    }
    Mat frame;
    Mat tmp;
    while (1)
    {
        cap >> frame;
        if(frame.empty())//检查视频是否结束
            break;
        else{
            imshow("video", frame);
            tmp = frame.clone();
            if (waitKey(20) == 27)
                break;
        }
    }
    cap.release();
}

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

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

相关文章

python学习笔记---IO编程【廖雪峰】

IO编程 ​ IO在计算机中指Input/Output&#xff0c;也就是输入和输出。由于程序和运行时数据是在内存中驻留&#xff0c;由CPU这个超快的计算核心来执行&#xff0c;涉及到数据交换的地方&#xff0c;通常是磁盘、网络等&#xff0c;就需要IO接口。 ​ IO编程中&#xff0c;S…

冒泡排序算法的实现和优化~

冒泡排序算法&#xff1a; 算法思想&#xff1a; 反复扫描待排序记录序列&#xff0c;在扫描的过程中&#xff0c;顺次比较相邻的两个元素的大小&#xff0c;若逆序就交换位置 文字描述该算法&#xff1a; 以升序为例&#xff1a; 依次比较数组中相邻两个元素大小&#xf…

win10+ubuntu23.04双系统安装

win10win10先安装好&#xff08;确保主板上各个螺丝稳定&#xff0c;至少4对螺丝铜柱&#xff0c;否则会各种蓝屏&#xff09;如果双系统安装失败了&#xff0c;连win10都进不去了&#xff0c;用原版ISO刻录的U盘或者光驱来修复引导。Easybcd安装Ubuntu23.04使用的ubuntu镜像文…

【项目实战】使用Java Keytool工具生成的CSR给第三方云平台签名

一、背景 客户要求我们提供一个CSR文件&#xff0c;给他们签名&#xff0c;他们的服务器是部署在Amazon上的。 二、Keytool是什么&#xff1f; Keytool 是一种 Java中的数字证书管理工具&#xff0c;用于管理密钥和证书。 它可以用来生成/申请数字证书、导入证书、导出证书、…

优秀的程序员是如何做好时间管理的

程序员是一项既消耗脑力&#xff0c;又消耗体力的职业&#xff0c;想成为一名成功的程序员&#xff0c;不仅要靠坚持不懈的努力&#xff0c;异于常人的天赋&#xff0c;更需要一套行之有效的时间管理方法&#xff0c;才能让自己在有限的时间内写出更好的代码&#xff0c;获得更…

用C语言图形库画一个红色爱心

这次我教大家用代码画一个心&#xff0c;这样你们就可以送给你们的女&#xff08;男&#xff09;朋友了。没找到对象的也可以用来表白啊。1.首先&#xff0c;我去百度找了心形线的函数&#xff0c;如下&#xff1a;2. 联系高中的数学知识&#xff0c;我们知道&#xff1a;f(x)&…

Unidbg模拟执行某段子so实操教程(二) LoadSo对比

一、目标 上篇文章里面&#xff0c;我们跑出来的结果有点不对头&#xff0c;多个一个 ABC。 这次我们试试用 LoadSo的方式来排查下问题。 参考&#xff1a; [借鸡生蛋之SandHook的使用(一)] 二、步骤 我们先用Android Studio 4.0 来编译一个so 打开AS&#xff0c;然后用向…

蓝桥杯STM32G431RBT6学习——按键

蓝桥杯STM32G431RBT6学习——按键 前言 按键同样为每年的必考考点&#xff0c;国信长天开发板中的按键电路如下&#xff1a; 芯片的PA0、PB0、PB1、PB2作为按键输入引脚&#xff0c;并采用外部上拉连接&#xff0c;当对应引脚检测到低电平时&#xff0c;即按键被按下。 STM…

【2293. 极大极小游戏】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums &#xff0c;其长度是 2 的幂。 对 nums 执行下述算法&#xff1a; 设 n 等于 nums 的长度&#xff0c;如果 n 1 &#xff0c;终止 算法过程。否则&#xf…

【自学Docker】Docker环境命令

Docker info命令 Docker info命令概述 用于查看 docker 容器的基本信息。 Docker info命令语法 haicoder(www.haicoder.net)# docker info案例 查看所有信息 使用 docker info 命令&#xff0c;查看当前 docker容器 的所有的信息。 haicoder(www.haicoder.net)# docker …

系分 - 案例分析 - 数据库设计(分布式)

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录系分 - 案例分析 - 数据库设计&#xff08;分布式&#xff09;分布式数据库系统透明性分类两阶段提交协议2PC分区分表分库分区技术数据库主从复制NoSQL非关系型数据库与关系型数据库对比类型缓存技术Redis…

git恢复误删除的代码模块

git恢复误删除的代码模块前言环境问题描述原先的仓库详情&#xff1a;最新的仓库详情&#xff1a;问题解决注意事项前言 寒假回家边聊天边进行代码上传&#xff0c;出现了冲突之后&#xff0c;不小心删除了一大片代码。这里记录一下解决方案。 环境 IDEA、Git 问题描述 代…

Cesium实战记录(八)三维风场+风速热力图(水平+垂直)

目录 老规矩首先看下效果 一、风场 1、数据 2、原理剖析 首先&#xff0c;第一步就是构造网格数据 然后&#xff0c;撒粒子 再然后&#xff0c;起风吧 二、热力场 老规矩首先看下效果 风场v1.0&#xff08;平面版&#xff0c;只有U V 方向风速&#xff09; 三维风场&am…

JS逆向之补环境过瑞数详解

JS逆向之补环境过瑞数详解 “瑞数” 是逆向路上的一座大山&#xff0c;是许多JS逆向者绕不开的一堵围墙&#xff0c;也是跳槽简历上的一个亮点&#xff0c;我们必须得在下次跳槽前攻克它&#xff01;&#xff01; 好在现在网上有很多讲解瑞数相关的文章&#xff0c;贴心的一步…

英伟达Flex-unity插件

好像有这么个库&#xff0c;可以用来流体仿真 官网是这个&#xff1a;NVIDIA FleX | NVIDIA 开发者 问题 但是现在好像没了&#xff1a; NVIDIA FleX for Unity (1.0 BETA) | 物理 | Unity Asset Store 百度 Unity 8.Oct.2021 Unfortunately, NVIDIA FleX for Unity (1.0 …

完美Crack:Froala Editor 4.0.16 Patch

基于 Web 的 JavaScript/HTML WYSIWYG 文本编辑器。 Froala Editor 是一个用 JavaScript 编写的轻量级 WYSIWYG HTML 编辑器&#xff0c;可为您的应用程序启用富文本编辑功能。使用简单&#xff0c;许多功能不必用数百个按钮让用户不知所措。编辑器的智能工具栏可以在一个简单的…

ESP-IDF:基于企业链表实现的循环链表实例,实现了初始,插入,循环打印的功能

例程&#xff1a; /* circle链表基于企业链表*/ // 链表节点 typedef struct CIRCLENODE { CIRCLENODE *next; } circleNode; typedef struct CIRCLELIST { circleNode head; int size; } circleList; circleList *Inital_CircleList() { circleList *cp (circleList *)mal…

LeakCanary简要原理

首先需要知道ReferenceQueue&#xff08;引用队列&#xff09;&#xff1a;public static void main(String[] args) {Activity activity new Activity(); // 模拟ActivityReferenceQueue<Activity> queue new ReferenceQueue<>(); // 引用队列WeakReference<…

从汇编的角度了解C++原理——new和malloc的区别

文章目录1、new和malloc的区别1.1、例程1.2、总结本文用到的反汇编工具是objconv&#xff0c;使用方法可以看我另一篇文章https://blog.csdn.net/weixin_45001971/article/details/128660642。 其它文章&#xff1a; 从汇编的角度了解C原理——类的储存结构和函数调用 从汇编的…

【索引】引用A survey on pickup and delivery problems的文章

1. Dynamic container drayage with uncertain request arrival times and service time windows⭐️ 具有不确定请求到达时间和服务时间窗口的动态集装箱运输 Container drayage plays a critical role in intermodal global container transportation, as it accomplishes th…