博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs2015 + opencv3.4.0 + qt msvc2015_64-5.7.1 视屏显示
阅读量:6707 次
发布时间:2019-06-25

本文共 1925 字,大约阅读时间需要 6 分钟。

1、qt application

2、qtvideoread.cpp中代码为:

#include "qtvideoread.h"

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/imgproc/imgproc.hpp"
#include <QString>
#include <QLabel>
#include <QPainter>
#include <QTimer>

qtvideoread::qtvideoread(QWidget *parent, Qt::WindowFlags flags)

: QMainWindow(parent, flags)
{
ui.setupUi(this);
// 初始化处理,建立QImage和frame的关联,开启定时器
capture.open("E:/studyvsqt/qtvideoread/0920_01.mov");//-1 需要加载所在电脑视屏
if (capture.isOpened())
{
capture >> frame;
if (!frame.empty())
{
cv::cvtColor(frame, frame, CV_BGR2RGB);
cv::flip(frame, frame, 1);
image = new QImage((const unsigned char*)(frame.data), frame.cols, frame.rows, QImage::Format_RGB888);
timer = new QTimer(this);
timer->setInterval(30);
connect(timer, SIGNAL(timeout()), this, SLOT(nextFrame()));
timer->start();
}
}
}

qtvideoread::~qtvideoread()

{

}

void qtvideoread::paintEvent(QPaintEvent * e)

{
// 更新图像
QPainter painter(this);
painter.drawImage(QPoint(0, 12), *image);

}

void qtvideoread::nextFrame()

{// 更新数据
capture >> frame;
if (!frame.empty())
{
cv::cvtColor(frame, frame, CV_BGR2RGB);
cv::flip(frame, frame, 1);
this->update();
}
}

3、qtvideoread.h中代码为:

#ifndef QTVIDEOREAD_H

#define QTVIDEOREAD_H

#include <QtWidgets/QMainWindow>

#include "ui_qtvideoread.h"

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

class qtvideoread : public QMainWindow

{
Q_OBJECT
/*
public:
qtvideoread(QWidget *parent = 0);
~qtvideoread();

private:

Ui::qtvideoreadClass ui;
*/
public:
qtvideoread(QWidget *parent = 0, Qt::WindowFlags flags = 0);
~qtvideoread();
protected:
void paintEvent(QPaintEvent * e);

private:

Ui::qtvideoreadClass ui;
cv::Mat frame;
cv::VideoCapture capture;
QImage *image;
QTimer *timer;

private slots:

void nextFrame();

};

#endif // QTVIDEOREAD_H

4、点击运行就可以了

5、参考的网址:https://blog.csdn.net/yang_xian521/article/details/7042687

转载于:https://www.cnblogs.com/rjjhyj/p/9682247.html

你可能感兴趣的文章
分享27款最佳的复古风格 WordPress 主题
查看>>
ASP.NET 打包多CSS或JS文件以加快页面加载速度的Handler
查看>>
让“是男人就下到100层”在Android平台上跑起来
查看>>
hdu 1010:Tempter of the Bone(DFS + 奇偶剪枝)
查看>>
文件和目录之umask函数
查看>>
ecmall的物流配送体系改造
查看>>
[Python]网络爬虫(九):百度贴吧的网络爬虫(v0.4)源码及解析(转)
查看>>
hdu4292Food(最大流Dinic算法)
查看>>
手机网站判断及跳转
查看>>
[LeetCode] Text Justification
查看>>
webdriver API study
查看>>
QoS令牌桶工作原理
查看>>
android工程gen目录中R.java包名是怎么确定
查看>>
【Machine Learning in Action --4】朴素贝叶斯过滤网站的恶意留言
查看>>
Java基础之类Class使用
查看>>
Ubuntu+Eclipse+ADT+Genymotion+VirtualBox开发环境搭建
查看>>
Android 学习之 开源项目PullToRefresh的使用
查看>>
Matplot中文乱码完美解决方式
查看>>
stm32学习笔记----双串口同时打开时的printf()问题
查看>>
Java代码简化神器-Lombok
查看>>