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");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Uniapp小程序端打包优化实践

背景描述&#xff1a; 在我们最近开发的一款基于uniapp的小程序项目中&#xff0c;随着功能的不断丰富和完善&#xff0c;发现小程序包体积逐渐增大&#xff0c;加载速度也受到了明显影响。为了提升用户体验&#xff0c;团队决定对小程序进行一系列打包优化。 项目优化点&…

CentOS 7如何修改用户密码

一、问题 CentOS 7如何修改用户密码&#xff1f; 二、解答 1、passwd命令 [rootlocalhost ~]# passwd 用户名#需要在root用户下修改 [rootlocalhost ~]# su root#切换到root下&#xff0c;输入密码 #修改用户的密码&#xff0c;按提示输入新密码和确认密码&#xff0c;密码是…

EPSON RC 机器人-第一个程序

创建项目 有机械人且用USB线连接好。可以USB。没有真机的选择 C4 Sample 可以运行程序。 否刚会提示【不能连接到控制器&#xff0c;未安装USB驱动器】 代码 按F5打开运行窗口 再点【开始】 点 【是】&#xff0c;查看运行结果

安装并开始设置 Windows 终端(命令提示符或Windows PowerShell或Azure Cloud Shell)

安装 安装 若要试用最新的预览功能&#xff0c;可能还需要安装 Windows 终端预览。 ‼️备注 如果你无法访问 Microsoft Store&#xff0c;GitHub 发布页上发布有内部版本。 如果从 GitHub 安装&#xff0c;Windows 终端将不会自动更新为新版本。 有关使用包管理器&#xff…

跟着cherno手搓游戏引擎【15】DrawCall的封装

目标&#xff1a; Application.cpp:把渲染循环里的glad代码封装成自己的类&#xff1a; #include"ytpch.h" #include "Application.h"#include"Log.h" #include "YOTO/Renderer/Renderer.h" #include"Input.h"namespace YO…

构建高效可靠的消息队列系统:设计与实现

目录 一、引言 二、设计目标 2.1、高可用性 1. 集群搭建 1.1 Docker Compose配置示例 2. 容错和恢复 2.1 异常检测与自动故障迁移 2.2 Spring Boot代码示例 3. 心跳检测 4. 优雅关闭 2.2、持久性 1. 生产者消息持久化 2. 队列的持久化 3. 消息队列的持久化 总结 …

Android Studio使用小记

复制了一个原来的项目&#xff0c;准备基于它调整一个OEM版本 因为svn服务器上分出了一个单独的版本&#xff0c;于是在工程目录下手工删除了.svn文件&#xff0c;并手工去除了vcs.xml <?xml version"1.0" encoding"UTF-8"?> <project versi…

第4章 python深度学习——(波斯美女)

第4章 机器学习基础 本章包括以下内容&#xff1a; 除分类和回归之外的机器学习形式 评估机器学习模型的规范流程 为深度学习准备数据 特征工程 解决过拟合 处理机器学习问题的通用工作流程 学完第 3 章的三个实例&#xff0c;你应该已经知道如何用神经网络解决分类问题和回归…

高通GAIA V3命令参考手册的研读学习(十三):GAIA通知

如前文《高通GAIA V3命令参考手册的研读学习&#xff08;四&#xff09;》所述&#xff0c;PDU一共有四种&#xff0c;前面已经讲了命令、回应以及错误码&#xff0c;现在来看最后一种&#xff1a;通知。 4. QTIL GAIA通知 通知发送的方向&#xff0c;是由设备发送到移动应用…

【Node.js】fs与path模块的基础使用

文章目录 前言一、什么叫做模块二、fs模块2.1 fs模块是干什么的&#xff1f;2.2 fs模块的使用导入fs模块读取文件的内容写入文件内容处理路径问题path路径模块 总结 前言 在Node.js中&#xff0c;fs模块&#xff08;文件系统模块&#xff09;是一个重要的核心模块&#xff0c;…

【操作系统】调用硬盘并且实现MBR与Loader的过渡——实战篇

一.概述 有了上一篇文章&#xff1a;【操作系统】调用硬盘并且实现MBR与Loader的过渡——原理篇的理论支持&#xff0c;我们就可以开始代码实操了&#xff0c;接下来我们将优化MBR程序&#xff0c;使其从扇区中读取出loader加载器&#xff0c;并将其存放到内存处&#xff0c;将…

springboot(ssm环保网站 绿色环保宣传系统Java系统

springboot(ssm环保网站 绿色环保宣传系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff0…

C++ easyX小程序:画五角星

//本小程序通过调用easyX的moveto、lineto函数画出五角星编写了FiveStar函数&#xff0c;在调用这个函数时setbkcolor、setlinecolor、setfillcolor设置了背景、线及填充颜色&#xff0c;又调用floodfill函数对五角星进行颜色填充。 //代码及注释如下&#xff1a; #include<…

excel怎么设置密码?轻松保护您的工作表

在数字化时代&#xff0c;数据的安全性显得尤为重要。excel作为我们日常工作中广泛使用的办公软件&#xff0c;其中可能包含了大量的敏感数据。为了确保这些数据不被未授权的人访问&#xff0c;本文将为您详细介绍excel怎么设置密码&#xff0c;从而有效地保护您的数据安全。 方…

基于Redis的高可用分布式锁——RedLock

目录 RedLock简介 RedLock工作流程 获取锁 释放锁 RedLock简介 Redis作者提出来的高可用分布式锁由多个完全独立的Redis节点组成&#xff0c;注意是完全独立&#xff0c;而不是主从关系或者集群关系&#xff0c;并且一般是要求分开机器部署的利用分布式高可以系统中大多数存…

delphi fmxui 做的一些跨平台app

pascal语音显然已经没落&#xff0c;但delphi还在坚挺着&#xff0c;每年都会发布新版本&#xff0c; 主要是做跨平台应用。 如果你觉得qt qml 写android app 比较麻烦&#xff0c;那可以尝试delphi 12&#xff0c;可以用c builder 尝试 android&#xff0c;ios 开发 下面的…

【Spring连载】使用Spring Data访问Redis(一)----快速指南

【Spring连载】使用Spring Data访问Redis&#xff08;一&#xff09;----快速指南 一、导入依赖二、Hello World程序 一、导入依赖 在pom.xml文件加入如下依赖就可以下载到spring data redis的jar包了&#xff1a; <dependency><groupId>org.springframework.boot…

适用于 Windows 7/8/10/11电脑的 12 款顶级数据恢复软件

很多时候&#xff0c;我们在 Windows 7 /8/10/11下不小心按了删除键&#xff0c;从而丢失了硬盘或 USB 驱动器中的重要文件和数据。在某些情况下&#xff0c;病毒或软件错误可能会损坏您的硬盘&#xff0c;从而影响您的文件。在这种情况下&#xff0c;您迫切需要一款适用于 Win…

STM32——点灯

STM32——点灯 1.开发准备 开发环境:keil5&#xff0c;STM32CubeMX 开发语言:C语言 烧录工具:ST-Link 库函数:HAL库 2.点灯 常用的GPIO HAL库函数&#xff1a; //GPIO初始化 void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); //调制电平 void H…

怎么创建docker镜像

创建Docker镜像可以通过以下几个步骤&#xff1a; 编写Dockerfile&#xff1a;Dockerfile是一个文本文件&#xff0c;定义了镜像的构建过程。在Dockerfile中&#xff0c;可以指定基础镜像、添加应用程序代码和依赖、设置环境变量、运行命令等。根据应用程序的需求&#xff0c;编…