11.VS2015+OpenCV3.2+QT软件/插件(QT篇1) --- OpenCV从零开始到图像(人脸 + 物体)识别系列


本文作者:小嗷

微信公众号:aoxiaoji

吹比QQ群:736854977


1.前言

1.1前言内容

2. 简介及用途

QT的特点:免费、轻量级、简洁明快,与其它编译器集成较好,且带有大量示例及教程,使用简单、方便、易上手。最重要就是图像识别招工十有八九需要会QT(2018-5-22)

3.Qt及QtVS插件下载安装

Qt下载

下载Qt5.5安装包(qt-windows-opensource)与Qt插件(Visual Studio Add-in)

找到对应的版本进行下载,里面包含多种不同的版本,MSVC2010、MSVC2012、MSVC2013分别是指支持Visual Studio 2010、Visual Studio 2012、Visual Studio 2013的Qt版本;android、ios分别是指支持android、ios平台的Qt版本;opengl与非opengl的区别为是否支持opengl;x86、x64分别代表支持32位与64位的操作系统。【根据自身安装软件和系统而定】

这里我选择的版本为:qt-opensource-windows-x86-msvc2015_64-5.7.0(64位支持Visual Studio 2015)以及qt-vsaddin-msvc2015-2.2.1

QT软件下载地址:
http://download.qt.io/archive/qt/
QT插件:
http://download.qt.io/development_releases/vsaddin/
个人百度云盘:
https://pan.baidu.com/s/1vOdpfang06aQg7RMWtmBjw
密码:rug7

3.1安装包

Qt安装

qt-opensource与Visual Studio Add-in的安装顺序没什么要求,安装过程不再多说(傻瓜式-下一步),安装路径不要包含中文、空格、特殊字符(~<>|?*!@#$%^&:,;)。

安装完成Visual Studio Add-in之后,Visual Studio就会出现相应的Qt选项!

3.2安装完

配置开发环境

选择:QT VS Tools->Qt Options->Add,配置Qt的开发环境。

这里根据Qt安装路径进行选择,Path为:C:\Qt\Qt5.7.0\5.7\msvc2015_64。

3.3配置开发环境

运行程序

导入Qt项目

选择:QT VS Tools->Open Qt Project File(.pro)…

3.4QT导入项目

新建Qt项目

1、选择:文件->新建->项目->搜索“QT”->Qt GUI Application,输入工程名,下一步…进行新建。

3.5创建QT项目

2、“next”下一步

3.6下一步

3、选择依赖的模块:最基础的QtCore、QtGui、QtWidgets还有一些音/视频、网络、数据库、XML、OpenGl相关的模块,需要使用的直接勾选即可。

3.7选择依赖的模块

4、finish(具体设置以后有机会在写)

3.8Finish

5、编译运行,选择:调试->开始执行 或者 Ctrl+F5。

3.9问题

配置环境变量

如果没有配置过环境变量,那么在工程目录下找到可执行程序,直接运行会出现丢失*.dll的错误提示信息。

解决方法:

(1)右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐)

QTDIR:C:\Qt\Qt5.7.0\5.7\msvc2015_64
PATH:%QTDIR%\bin

3.10配置环境变量1

3.10配置环境变量2

6、重新编译运行,选择:调试->开始执行 或者 Ctrl+F5。

3.11成功运行

4.任务

任务: VS+QT创建一个OpenCV应用

新建Qt项目

1、选择:文件->新建->项目->搜索“QT”->Qt GUI Application,输入工程名,下一步…进行新建。

3.5创建QT项目

2、“next”下一步

3.6下一步

3、选择依赖的模块:最基础的QtCore、QtGui、QtWidgets还有一些音/视频、网络、数据库、XML、OpenGl相关的模块,需要使用的直接勾选即可。

4.选择相对的库

4、finish

4.2类命名

5、 选择QtGuiApplication5.ui -> 打开方式 -> Qt Designer -> 确定

4.3选择QtGuiApplication5

6、 拉一个OPenGL控件到窗体上

4.4拉一个OPenGL控件到窗体上

7、 改控件名字为mat->右键选择提升为…

4.5 提升为

8、 提升的类名称:MatView -> 点击添加 ->提升 -> ctrl + F 保存界面 ,如下图

4.6 MatView.PNG

9、 Header Files右键 -> 类导向 -> 添加类 -> 类命:MatView -> 完成 -> 确认,如下图

4.7 新建类.PNG

4.8 新建MatView项.PNG

4.9确认.PNG

10、 MatView.h代码

#pragma once
//导入相应的库
#include <QOpenGLWidget>
//继承QOpenGLWidget
class MatView:public QOpenGLWidget
{
    Q_OBJECT

public:
//构造函数
    MatView(QWidget *p);
    ~MatView();
    //重载一个函数
    void paintEvent(QPaintEvent *e);
};

4.10代码1.PNG

11、 MatView.cpp代码

#include "MatView.h"
#include<opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <QImage>
#include <QPainter>

using namespace cv;

//重载一个函数,只要窗口发生变化他都会调用,这个函数不能处理业务逻辑,只做处理图像
void MatView::paintEvent(QPaintEvent *e) {
    Mat src = imread("D://1.jpg");
    QImage img(src.data, src.cols, src.rows, QImage::Format_RGB888);
    QPainter painter;
    painter.begin(this);
    painter.drawImage(QPoint(0, 0), img);
}
//构造函数,调用父类的,因为父类还有处理在里面,所以要调用它
MatView::MatView(QWidget *p) :QOpenGLWidget(p)
{
}


MatView::~MatView()
{
}

4.11代码2.PNG

11、 main.cpp代码

#include "QtGuiApplication5.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtGuiApplication5 w;
    w.show();
    return a.exec();
}

12、 导入库,如果没导入Opencv库,自己翻开,第二章

13、 运行代码

代码不重要,重要是如何配置,直接运行代码,可能因为系统+环境不同出错,小嗷是VS2015 + opencv3.2 + Win10 64位 + Qt5.7 + VSaddin插件2015-2.2.1。有需要QQ联系我,我邮箱发代码

14、 效果图

5.效果图.PNG

下期,再讲如何生成exe

我擦,这期写的7小时。写的6k字

14.感想

  1. 本人是抱着玩一玩的心态,学习opencv(其实深度学习没有外界说的这么高深,小嗷是白板,而且有工作在身并且于代码无关)
  2. 大家可以把我的数学水平想象成初中水平,毕竟小嗷既不是代码靠吃饭又不是靠数学吃饭,毕业N年
  3. 写文章主要是为了后人少走点弯路,多交点朋友,一起学习
  4. 如果有好的图像识别群拉我进去QQ:631821577
  5. 就我一个白板,最后还是成的,你们别怕,慢慢来把

7.二维码

分享可以无数次,转载成自己文章QQ邮箱通知一下,未经授权请勿转载。

  • 邮箱:631821577@qq.com
  • QQ群:736854977
  • 有什么疑问公众号提问,下班或者周六日回答,ths
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值