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

相关文章

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操