一、说明

所用QT版本:5.9.1

电脑配置:win10,64位系统

调用的是编译好的:OpenCV-MinGW-Build-4.1.0(稍后放链接)

在大学期间,由于项目需求需要用到QT+opencv进行编程。在网上看了一下,有很多介绍配置的方法的文章,大致有两种,一种是需要使用CMake对opencv进行编译,这种方法太复杂了,而且我在尝试中也是各种报错,各种尝试无果之后果断放弃了;

另一种是直接引用库函数,配置起来非常简单,我选择的配置方法是第二种。虽然第二种方法只有三四步的过程,网上也有很多教程,但是在我实际配置的过程中,遇到了很多麻烦,本来几分钟搞定的事情,我花了几天才完成,中途一度有过放弃。

这里简单介绍一下配置方法,提点一下特别需要主要的细节。

二、步骤

1、新建一个项目(注意英文路径)

2、在pro文件内加入代码(完整如下):

#-------------------------------------------------
#
# Project created by QtCreator 2021-11-04T19:23:51
#
#------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = A_1
TEMPLATE = app # The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \
main.cpp \
mainwindow.cpp HEADERS += \
mainwindow.h FORMS += \
mainwindow.ui INCLUDEPATH += D:/RJDZ/OpenCV-MinGW-Build-4.1.0/include\
D:/RJDZ/OpenCV-MinGW-Build-4.1.0/include/opencv2 LIBS += D:/RJDZ/OpenCV-MinGW-Build-4.1.0/x86/mingw/lib/libopencv_*.dll.a

3、在ui界面随便拖入的几个QPushButton,修改objectName :

         

4、在 mainwindow.h 头文件中加入:

#include <QMainWindow>
#include <opencv2/opencv.hpp>

完整如下:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <opencv2/opencv.hpp> using namespace cv; namespace Ui {
class MainWindow;
} class MainWindow : public QMainWindow
{
Q_OBJECT public:
explicit MainWindow(QWidget *parent = 0);
int num = 0;
~MainWindow(); private:
Ui::MainWindow *ui;
}; #endif // MAINWINDOW_H

5、main.cpp 保持不变 :

#include "mainwindow.h"
#include <QApplication> int num=0;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show(); return a.exec();
}

6、在 mainwindow.cpp 中加入以下头文件 :

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

完整代码以及功能定义 :

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp> MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this); connect(ui->en1,&QPushButton::clicked,[=](){
qDebug()<<"打开图片" ;
Mat image=imread("D:/pp/2.jpg");//一定要使用绝对路径,其他可以回报错
//namedWindow( "Display window”, WINDOW_AUTOSIZE ");
imshow( "Display window", image );
qDebug()<<"num:"<<num<<endl;
});
connect(ui->video,&QPushButton::clicked,[=](){
VideoCapture cap(0);
Mat imgs; while (true) {
num=0;
cap.read(imgs);
flip(imgs,imgs,1);
imshow("Video",imgs);
waitKey(1);
if(num==1){
break; }
} });
connect(ui->V_off,&QPushButton::clicked,[=](){
num=1;
});
connect(ui->off,&QPushButton::clicked,[=](){
parent->close();
close(); }); } MainWindow::~MainWindow()
{
delete ui;
}

三、编译,测试效果

可以看到,能够正常运行:

各功能都可以正常使用:
   、

以上,配置完成!

Qt 实现配置 OpenCV 环境,并实现打开图片与调用摄像头的更多相关文章

  1. OpenCV2学习笔记03:Qt中配置OpenCV环境

    在Qt中开发基于OpenCV的应用时,需要配置对应函数库到环境变量,这时候我们需要使用到qmake能够识别的变量来指定环境变量. INCLUDEPATH: 用于指定搜索头文件到文件夹路径. LIBS: ...

  2. 搭建Android+QT+OpenCV环境,实现“单色图片着色”效果

               OpenCV是我们大家非常熟悉的图像处理开源类库:在其新版本将原本在Contrib分库中的DNN模块融合到了主库中,并且更新了相应文档.这样我们就能够非常方便地利用OpenCV实 ...

  3. VS2010 配置opencv环境

    大家在使用opencv的时候肯定会面对这样一个问题:根据官网以及大多数教程提供的方法中,似乎每一次新建一个opencv的新项目以后都需要重新再配置"VC++目录"中的"包 ...

  4. VS2010 / MFC + OpenCV 2.4.1打开图片

    Windows 7 x64,VS2010 / MFC + OpenCV 2.4.1打开图片显示到Picture控件中. OpenCV 2.2.OpenCV 2.3同样适用. 工具/原料 WinXP / ...

  5. opencv第一站:配置opencv环境(2015-12-12)

    今天论坛申请的书< OpenCV 计算机视觉编程攻略(中国工信出版社)>到了,准备研究研究机器视觉. 晚上安装了 vc2008 及 opencv 最新版 3.0.0,试了各种配置都是错误提 ...

  6. vs2013配置opencv环境

    首先本人的opencv版本是opencv2.4.9. 步骤如下: 1. 首先下载opencv2.4.9 2. 配置环境变量: 3. 系统变量:D:\opencv\build\x86\vc12\bin ...

  7. 配置opencv环境

    包含目录:解决代码报错问题 F:\ndk\opencv-windows\opencv\build\include;F:\ndk\opencv-windows\opencv\sources\includ ...

  8. VS2010 / MFC + OpenCV 2.4.9打开图片

    原文地址:http://www.opencv.org.cn/forum.php?mod=viewthread&tid=30832 第一部分,参考http://jingyan.baidu.com ...

  9. opencv环境变量配置

    本文章由@浅墨_毛星云 出品  原文文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    微博:ht ...

随机推荐

  1. 微信小程序码生成及canvas绘制

    吐槽:某厂的开发文档写的跟屎一样 1.后台返回accessToken,小程序请求获取小程序码 uni.request({ url: 'https://api.weixin.qq.com/wxa/get ...

  2. python的数据结构和基本语法

    1.支持的数据类型 str(字符串类型).int(整型).flout(浮点型).bool(逻辑值).complex(复数[数学上的]).bytes(字节型).list(列表).tuple(元组[不可以 ...

  3. 什么是SaaS?

    SaaS的定义 SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务. SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际 ...

  4. TCP | 你真的懂 HTTP 吗?

    前言 Hello 大家好,我是 Sam Zhang. HTTP 相信是每个 Web 开发者都耳熟能详的名词了.但是,新手开发者想要完全理解 HTTP 协议却需要时间.这期视频,我就来带大家入门 HTT ...

  5. 保姆级SpringBoot+Vue图片上传到阿里云OSS教程

    小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,这下可把我气坏了,就 ...

  6. SpringBoot——两种传参方式

    ?传参 举例:http://localhost:8082/news/asset/getDatas?page=1&keyWord=123&year=2020 注解:@RequestPar ...

  7. Nginx配置不当(CRLF注入 、目录穿越)

    基于vulhub漏洞环境 环境搭建参考:https://blog.csdn.net/qq_36374896/article/details/84102101 1.漏洞名称 CRLF注入 2.漏洞原理 ...

  8. flask 数据库一节笔记

    笔记一:os.path的用法:1. os.path.dirname(__file__)   返回当前脚本的执行路径,__file__为固定参数2. os.path.abspath(file)     ...

  9. CF786B/CF787D Legacy

    题目描述: luogu cf cf 题解: 最短路+线段树优化建图. 考虑本题的边是点->点.段->点和点->段,我们可以建线段树然后拆成入点和出点. 入点:儿子->父亲,边权 ...

  10. Mysql之B+树索引实战

    索引代价 空间上的代价 一个索引都对应一棵B+树,树中每一个节点都是一个数据页,一个页默认会占用16KB的存储空间,所以一个索引也是会占用磁盘空间的. 时间上的代价 索引是对数据的排序,那么当对表中的 ...