一、说明

所用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. SQL注入 - SQLi-Labs靶场过关记录

    Less-1 1.看报错类型,确定注入点 ?id=1' order by 4--++ 2.确定数据库 ?id=-1' union select 1,2,3--++ 3.查看数据库 ?id=-1' un ...

  2. laravel 框架资源路由

  3. 理解并手写 bind() 函数

    有了对call().apply()的前提分析,相信bind()我们也可以手到擒来. 参考前两篇:'对call()函数的分析' 和 '对apply()函数的分析',我们可以先得到以下代码: Functi ...

  4. 【图片+代码】:GCC 链接过程中的【重定位】过程分析

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  5. VUE3 之 列表动画 - 这个系列的教程通俗易懂,适合新手

    1. 概述 老话说的好:可以为别人解决痛点的产品就是好产品. 言归正传,今天我们来聊聊 VUE 的列表动画. 2. 列表动画 2.1  列表中增加和删除元素 <style> .my-ite ...

  6. Docker——概述

    出现原因:开发接替运维的工作,将jar包连同(mysql,jdk)等环境上线 实现:java -> jar(环境) -> 打包项目带上环境(镜像) -> (Docker仓库:商店) ...

  7. [SPDK/NVMe存储技术分析]012 - 用户态ibv_post_send()源码分析

    OFA定义了一组标准的Verbs,并提供了一个标准库libibvers.在用户态实现NVMe over RDMA的Host(i.e. Initiator)和Target, 少不了要跟OFA定义的Ver ...

  8. 解决使用DBeaver连接MySQL时报错-The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

    解决使用DBeaver连接MySQL时报错,其实提示很明显. The server time zone value '�й���׼ʱ��' is unrecognized or represents ...

  9. python爬取今日头条图片

    import requests from urllib.parse import urlencode from requests import codes import os # qianxiao99 ...

  10. -std=c++11 编译器设置

    range-based 'for' loops are not allowed in C++98 mode