参考:http://blog.csdn.net/augusdi/article/details/8865541

代码如下:

注意,要在ui界面上放置一个“Vertical Layout”控件,调整到合适大小

#include <QtWidgets/QMainWindow>
#include <QPaintEvent>
#include <QTimer>
#include <QPainter>
#include <QPixmap>
#include <QLabel>
#include <QImage>
#include <opencv.hpp>
#include "ui_mainwindow.h"
using namespace cv;
class mainwindow : public QMainWindow
{
	Q_OBJECT

public:
	mainwindow(QWidget *parent = 0);
	~mainwindow();
public slots:
	void updateImage();
private:

	QTimer theTimer;
	Mat srcImage;
	VideoCapture videoCap;
	QLabel *imageLabel;

	Ui::mainwindowClass ui;

protected:
	void paintEvent(QPaintEvent *e);
};

  

mainwindow::mainwindow(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	connect(&theTimer, &QTimer::timeout, this, &mainwindow::updateImage);
	//从摄像头捕获视频
	if(videoCap.open(0))
	{
		srcImage = Mat::zeros(videoCap.get(CV_CAP_PROP_FRAME_HEIGHT), videoCap.get(CV_CAP_PROP_FRAME_WIDTH), CV_8UC3);
		theTimer.start(33);
	}
	//设置显示视频用的Label
	imageLabel = new QLabel(this);
	ui.verticalLayout->addWidget(imageLabel);
}

mainwindow::~mainwindow()
{

}

void mainwindow::paintEvent(QPaintEvent *e)
{
	//显示方法一
	QPainter painter(this);
	QImage image1 = QImage((uchar*)(srcImage.data), srcImage.cols, srcImage.rows, QImage::Format_RGB888);
	painter.drawImage(QPoint(20,20), image1);
	//显示方法二
	QImage image2 = QImage((uchar*)(srcImage.data), srcImage.cols, srcImage.rows, QImage::Format_RGB888);
	imageLabel->setPixmap(QPixmap::fromImage(image2));
	imageLabel->resize(image2.size());
	imageLabel->show();
}

void mainwindow::updateImage()
{
	videoCap>>srcImage;
	if(srcImage.data)
	{
		cvtColor(srcImage, srcImage, CV_BGR2RGB);//Qt中支持的是RGB图像, OpenCV中支持的是BGR
		this->update();	//发送刷新消息
	}
}

  演示结果:

qt上用opencv显示摄像头视频的更多相关文章

  1. 在Jetson TX2上捕获、显示摄像头视频

    参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...

  2. 在Jetson TX2上显示摄像头视频并使用python进行caffe推理

    参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...

  3. opencv 显示摄像头数据

    本文章是一个小例子,主要是在ubuntu 系统中利用Opencv 显示摄像头的数据 ,显示到对话框中. 1.建立一个  main.cpp #include<opencv2/core/core.h ...

  4. Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比

    打开视频文件或摄像头视频需要使用Opencv中的VideoCapture类,保存视频或摄像头视频到本地磁盘,需要使用Opencv中的VideoWriter类,使用都很简单,这篇文章就记录一下Video ...

  5. [OpenCV]获取摄像头视频

    环境:Windows 8 64bit + VS2012 X64 + OpenCV 2.4.7 摄像头的捕捉使用VideoCapture类 Class VideoCapture    [OpenCV文档 ...

  6. 在Jetson TX2上安装OpenCV(3.4.0)

    参考文章:How to Install OpenCV (3.4.0) on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下面的描述 在我们使用python3进行编程时 ...

  7. 使用opencv显示视频的方法

    下面对使用opencv显示视频做一个简单的记录.当然,网上这方面的资料已经数不胜数了,我只是将其简单记录,总结一下. 在opencv中显示视频主要有: (1)从本地读取视频和调用摄像头读取视频 (2) ...

  8. Kinect SDK(1):读取彩色、深度、骨骼信息并用OpenCV显示

    Kinect SDK 读取彩色.深度.骨骼信息并用OpenCV显示 一.原理说明 对于原理相信大家都明白大致的情况,因此,在此只说比较特别的部分. 1.1 深度流数据: 深度数据流所提供的图像帧中,每 ...

  9. crtmpserver的安装,摄像头视频测试

    下载 svn co --username anonymous --password "" https://svn.rtmpd.com/crtmpserver/branches/1. ...

随机推荐

  1. javascript体系 DOM原理

    解释清楚DOM原理并不是一件容易的事,但是任何一个前端工程师,都必须牢牢掌握它. DOM整体架构: 图解: DOM,即针对XML文档的应用程序编程接口(API).通俗一点说,HTML属于XML的一种, ...

  2. 关于ASP.NET MVC4 Web API简单总结

    原文地址:http://www.cnblogs.com/lei2007/archive/2013/02/01/2888706.html wcf web api 和 asp.net web api , ...

  3. 018. ADO.NET _DataSet_DataAdapter

    DataSet对象是支持ADO.NET的断开式或分布式数据方案的核心对象; DataAdapter对象是一种用来充当DataSet对象与实际数据源之间的桥梁 的对象, 所以二者结合访问数据库中数据模式 ...

  4. noip2011普及组——数字反转

    数字反转 时间限制:1s 内存限制:128MB[问题描述]给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 ...

  5. apache commons vfs 文件夹监控

    package test.vfs; import java.io.File; import org.apache.commons.logging.Log; import org.apache.comm ...

  6. git教程,待学习

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Git教程: Git简介Git的诞 ...

  7. Android Bitmap和Canvas学习笔记 [转]

    原文:http://www.cnblogs.com/feisky/archive/2010/01/10/1643460.html 位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的. ...

  8. Hibernate入门学习(二)

    本文主要讲如何搭建Hibernate开发环境和简单实例. 一.搭建开发测试环境 1.1 下载Hibernate 从Hibernate官方网站上下载最新的Hibernate ORM,从Hibernate ...

  9. 转:Why SeaJS

    原文地址:http://chaoskeh.com/blog/why-seajs.html Why SeaJS 前言 本文主要面向刚接触 SeaJS 的同学.文章会先提出传统 Javascript 开发 ...

  10. ajaxForm笔记

    <script src="Scripts/jquery.form.js" type="text/javascript"></script> ...