qt学习:多媒体Multimedia摄像头

2024-01-31 02:20

本文主要是介绍qt学习:多媒体Multimedia摄像头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

注意

头文件

模块

步骤

实例

定义一个摄像头对象和一个摄像头拍照对象

在构造函数里获取当前电脑上所有可以用的摄像头存入链表

启动摄像头按钮点击事件

退出按钮点击事件

拍照按钮点击事件

保存图片槽函数定义和实现


摄像头在Qt Multimedia多媒体模块里

QCamera可与用于取景器显示的QCameraViewfinder、视频录制的QMediaRecorder、图像拍摄的QCamerAmageCapture一起使用

可以用QCameraInfo列出可以使用的相机并选择要使用的相机

摄像头功能

  • 实时画面QCameraViewfinder
  • 录像QMediaRecorder
  • 抓照QCameralmageCa

注意

摄像头类QCamera先通过绑定取景器显示QCameraViewfinder来获取摄像头的数据,再将取景器显示QCameraViewfinder与要显示的界面控件绑定才可以显示到界面控件上。

头文件

#include <QCameraInfo>
#include <QCamera>//摄像头类
#include <QCameraViewfinder>//摄像头取景器
#include <QCameraImageCapture>//摄像头拍照

模块

QT       += core gui multimedia multimediawidgets

步骤

  1. 定义一个摄像头对象和一个摄像头拍照对象
  2. 获取当前电脑上所有可以用的摄像头存入链表
  3. 实例化一个摄像头对象和摄像头取景器对象
  4. 取景器和ui控件进行绑定
  5. 取景器显示
  6. 将摄像头对象与取景器对象进行绑定
  7. 新疆一个图像对象
  8. 当捕捉到画面就保存下来
  9. 设置静态捕捉
  10. 启动摄像头
  11. 拍照
  12. 保存图片
  13. 退出摄像头

实例

定义一个摄像头对象和一个摄像头拍照对象

private:QCamera *camera;//摄像头对象QCameraImageCapture* imageCapture;//摄像头拍照类的对象

在构造函数里获取当前电脑上所有可以用的摄像头存入链表

    //获取当前主机上 所有可用的摄像头列表const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();//将摄像头列表显示到下拉控件中for(int i=0; i<cameras.size(); i++){ui->comboBox->addItem(cameras.at(i).deviceName());}

启动摄像头按钮点击事件

    //实例化一个摄像头类的对象,参数为上面列表中的摄像头//可以选择默认的摄像头QCameraInfo::defaultCamera()camera = new QCamera(ui->comboBox->currentText().toUtf8());//实例化一个摄像头取景器类的对象//取景器跟当前界面上的UI控件进行绑定QCameraViewfinder *viewfinder = new QCameraViewfinder(ui->label_show);//根据控件的大小调整取景器的大小viewfinder->resize(ui->label_show->size());//取景器显示viewfinder->show();//将摄像头对象与取景器对象进行绑定//也就是让摄像头拍摄到的画面显示到取景器控件上camera->setViewfinder(viewfinder);//如果需要拍照就要下面的步骤,不需要可以不用,但也要启动摄像头//新建摄像头的拍照对象imageCapture = new QCameraImageCapture(camera);//当捕捉到画面之后,会发送一个信号,将信号关联函数,在函数中保存下来connect(imageCapture,&QCameraImageCapture::imageCaptured,this,&Widget::onSaveCaptureImage);//设置成静态捕捉,也就是说捕捉静态画面camera->setCaptureMode(QCamera::CaptureStillImage);//启动命令camera->start();

退出按钮点击事件

    camera->stop();delete camera;

拍照按钮点击事件

    //捕捉图片,捕捉后会触发一个信号,调用槽函数来实现保存图片imageCapture->capture();

保存图片槽函数定义和实现

//定义
private slots:void onSaveCaptureImage(int id, const QImage &preview);//实现
void Widget::onSaveCaptureImage(int id, const QImage &preview)
{//通过调用QIamge对象来保存图片preview.save("1.bmp");
}

这篇关于qt学习:多媒体Multimedia摄像头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662286

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性

Qt之QMessageBox的具体使用

《Qt之QMessageBox的具体使用》本文介绍Qt中QMessageBox类的使用,用于弹出提示、警告、错误等模态对话框,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.简单介绍3.常见函数4.按钮类型(QMessage::StandardButton)5.分步骤实现弹窗6.总结1.引言

Qt中Qfile类的使用

《Qt中Qfile类的使用》很多应用程序都具备操作文件的能力,包括对文件进行写入和读取,创建和删除文件,本文主要介绍了Qt中Qfile类的使用,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.QFile文件操作3.演示示例3.1实验一3.2实验二【演示 QFile 读写二进制文件的过程】4.

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen