QT(5.9.6) 打开USB摄像头

QT显示USB摄像头视频

目录

一、说明

二、环境说明

三、代码实现

3.1头文件

3.2cpp文件

四、总结


一、说明

usb摄像头利用qt打开,能够正常显示摄像头显示的视频。

二、环境说明

2.1、VS2015+QT5.9.6,利用QT的QCamera类即可实现相机打开。

在VS2015新建项目,添加这两个类multimedia;multimediawidgets

头文件说明,包含qcamera和qcamerainfo类,然后定义两个私有成员;

ui界面布局,视频显示串口类提升(小声抗议,用的录频软件和gif制作软件都有水印)。

三、代码实现

3.1头文件

#pragma once

#include <QtWidgets/QWidget>
#include "ui_myCamera.h"
#include <QtMultimedia\qcamera.h>
#include <QtMultimedia\qcamerainfo.h>

class myCamera : public QWidget
{
    Q_OBJECT

public:
    myCamera(QWidget *parent = Q_NULLPTR);
	private slots:
	void on_pushButton_camref_clicked();
	void on_pushButton_cameraOpen_clicked();

private:
    Ui::myCameraClass ui;
	QCamera* m_camera;       //相机类
	QList<QCameraInfo> cameras;//usb相机列表
};

3.2cpp文件

#include "myCamera.h"

myCamera::myCamera(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
}
void myCamera::on_pushButton_camref_clicked()
{
	cameras = QCameraInfo::availableCameras();//获取摄像头信息

	for (int i = 0; i < cameras.count(); i++)
	{
		const QCameraInfo cameraInfo = cameras.at(i);

		ui.comboBox_camlist->addItem(cameraInfo.description());
	}

	int index_c = ui.comboBox_camlist->currentIndex();

	m_camera = new QCamera(cameras.at(index_c));//创建摄像头
	m_camera->setCaptureMode(QCamera::CaptureVideo);//设置捕捉模式为视频
	ui.widget_usb->setAspectRatioMode(Qt::KeepAspectRatioByExpanding);
	m_camera->setViewfinder(ui.widget_usb);//设置 摄像头画面的显示位

}
//打开ATP相机,关闭相机
void myCamera::on_pushButton_cameraOpen_clicked()
{
	if (m_camera->state() != QCamera::ActiveState)
	{
		m_camera->start();//开启摄像头
		ui.pushButton_cameraOpen->setText(QString::fromLocal8Bit("相机关闭"));
	}
	else
	{
		m_camera->stop();
		ui.pushButton_cameraOpen->setText(QString::fromLocal8Bit("相机打开"));
	}
}

四、相机及运行效果

程序运行效果:

四、总结

qt中有封装好的类,qt帮助文件查看一下类的接口函数,然后网上搜索一个函数的具体应用,实现自己的小程序是非常简单的。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值