QT 显示USB摄像头数据

一、简述

      记--简单的将USB摄像头捕获的图像数据显示到窗口上。

      例子1打包:链接: https://pan.baidu.com/s/1U3CW7sCETVyeMqTRD6dNUQ 提取码: gh5x

      例子2打包:链接: https://pan.baidu.com/s/11tFqk_p0NSjIO94-2kv0vA 提取码: v7h5

                                            例子1 直接显示到窗口

二、效果

         将USB摄像头连接到电脑(有些摄像头需要安装驱动),然后打开软件就可以看到摄像头捕获的图像了。

        (例子中默认打开第一个摄像头设备)

使用摄像头类型为:

三、工程结构

         

布局

四、源文件

MyCamera.pro文件

QT       += core gui multimediawidgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = MyCamera
TEMPLATE = appSOURCES += main.cpp\mainwindow.cppHEADERS  += mainwindow.hFORMS    += mainwindow.ui

mainwindow.cpp文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QCamera>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;QCamera* m_camera;//摄像头设备
};#endif // MAINWINDOW_H

main.cpp文件

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);m_camera = new QCamera(this);//初始化摄像头设备m_camera->setCaptureMode(QCamera::CaptureVideo);//设置捕捉模式为视频m_camera->setViewfinder(ui->centralWidget);//设置 摄像头画面的显示位置m_camera->start();//开启摄像头
}MainWindow::~MainWindow()
{delete ui;
}

五、总结

1、使用摄像头相关类QCamera,需要在.pro文件添加:multimediawidgets

更多请查看帮助文档:

2、 摄像头显示的窗体控件需要提升为QVideoWidget类型

例子2 显示到widget控件

一、效果 

二、工程结构

布局

三、主要代码

mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);m_camera = new QCamera(this);//初始化摄像头设备m_camera->setCaptureMode(QCamera::CaptureVideo);//设置捕捉模式为视频m_camera->setViewfinder(ui->widgetCamera);//设置 摄像头画面的显示位置}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_btnCameraCtrl_clicked()//摄像头开关控制
{if( (ui->btnCameraCtrl->text() == "开启摄像头") && (m_camera->state() !=  QCamera::ActiveState) )//未开启状态{m_camera->start();//开启摄像头ui->btnCameraCtrl->setText("关闭摄像头");}else{m_camera->stop();//关闭摄像头ui->btnCameraCtrl->setText("开启摄像头");}
}void MainWindow::on_btnSnap_clicked()//抓拍
{if( m_camera->state() ==  QCamera::ActiveState)//摄像头开启状态下才抓拍{QPixmap pixmap = ui->widgetCamera->grab();//将widget内容保存为pixmap图像信息pixmap.save("Snap.bmp");//保存为Snap.bmp}
}

四、总结

4.1 将widget显示内容保存为图片

QPixmap pixmap = ui->widgetCamera->grab();//将widget内容保存为pixmap图像信息
pixmap.save("Snap.bmp");//保存为Snap.bmp

4.2 获取可用摄像头设备列表

//包含头文件QCameraInfo
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();//获取可用摄像头设备列表
foreach (const QCameraInfo &cameraInfo, cameras)
{qDebug()<<cameraInfo.deviceName();//摄像头的设备名称
}

QT 显示USB摄像头数据相关推荐

  1. QT——连接USB摄像头

    功能:使用QT连接USB摄像头,点击按钮显示画面 QT += multimedia QT += multimediawidgets #include "camera.h" #inc ...

  2. orangepi-zero2使用tft-lcd实时显示USB摄像头图像-2

    目录 一.USB摄像头驱动 二.上代码 本文使用环境: 电脑:Ubuntu 18.04.5 LTS 开发板:orangepi-zero2 交叉编译器:aarch64-none-linux-gnu- 摄 ...

  3. Win10+OpenCV4.5 无法正常读取USB摄像头数据解决方案

    借鉴了这个博客. 采用OpenCV中的VideoCapture类获取USB摄像头的数据时,使用下列代码 #include "pch.h" #include "highgu ...

  4. Win10+OpenCV无法正常读取USB摄像头数据解决方案

    采用OpenCV中的VideoCapture类获取USB摄像头的数据时,使用下列代码 VideoCapture VideoStream(0);if (!VideoStream.isOpened()) ...

  5. ubuntu-Linux系统读取USB摄像头数据(uvc)

    这几天在做小车的过程中,需要用到图像采集.我想现在用的摄像头是UVC免驱的.根据国嵌的教程中有一个gspca摄像头的程序.我发现把gspca的采集程序用到uvc上时,在显示图像的时候提示没有huffm ...

  6. PyQt5利用QLabel全屏显示USB摄像头视频流

    QLabel和画布QGraphicsView都可以实现全屏显示视频流,这次先说下QLabel,这个控件在全屏显示的时候会遇到一个问题,就是控件大小以及窗口模式的设置(参考:linux qt应用程序全屏 ...

  7. Linux下基于XScale的USB摄像头图像采集

    1.引言 摄像头分为数字摄像头和模拟摄像头两大类.传统的模拟摄像头,获取图像信息需要先将视频采集设备产生的模拟视频信号经过特定的视频捕捉卡转换成数字信号,进而才能进行存储等处理.数字摄像头可以直接捕捉 ...

  8. ROS调用本地摄像头数据并在rviz里显示

    ROS调用本地摄像头数据并在rviz里显示: 1 通过usb_cam驱动包启动摄像头 1.1 创建并编译usb_cam驱动程序 1.2 启动usb_cam_node节点 1.3 在rviz中显示本地摄 ...

  9. STM32实现USB摄像头显示到LCD屏幕上

    第一章:简介 1.1 开发环境 USB摄像头型号:100w前置摄像头 主机型号:野火霸天虎开发版 外设:USB-HOST接口:连接USB摄像头设备 外部Sram:存放USB摄像头数据 LCD屏幕:显示 ...

最新文章

  1. C语言Socket动态ajax网页,简单的ajax聊天网页 socket
  2. Stay hungry, Stay foolish---致所有迷茫的人
  3. JavaScript中关键字和保留字有哪些
  4. Magento--判断checkout中是否使用了coupon code
  5. 杂谈---2013年,总结?吐槽?灌水?
  6. Linux_c++线程函数的使用
  7. 美国河流出现神奇冰盘 顺着水流不断旋转
  8. OWA2003隐藏附件病毒提示的方法
  9. 自学python能找到工作吗-自学 Python,我是如何找到工作的?
  10. <零售数据分析-Pandas> 通过环比销售和库存对产品进行分类
  11. Andorid连接USB打印机
  12. 主力吸筹猛攻指标源码_成功率90%以上【主力吸筹+买点提示+使用方法】通达信指标公式源码...
  13. 优动漫PAINT下载的素材找不到怎么办?
  14. python 中搞错工作路径的意思导致的相对路径产生bug:[Errno 2] No such file or directory:
  15. STM32 内核复位 与 系统复位 区别及程序实现
  16. [一场梦转无踪 为什么美梦有始无终]香格里拉夏宫自助茶点
  17. 计算机组装方案i5,3000元预算方案i5 8400/GTX1050Ti装配配置清单推荐
  18. docker之mongo数据库忘记用户名密码
  19. Markdown表情符号简码列表
  20. vue 创建一个登录界面

热门文章

  1. 考试题库app软件开发
  2. Android电视安装Kodi
  3. flask 自动换背景,使用python获取bing每日壁纸当作登陆背景图片
  4. 12306网站抓取全国所有车次信息爬虫,附源代码,可直接使用
  5. 帆软自定义登录html,FineReport中如何自定义登录界面
  6. 用身高和/或体重数据进行性别分类
  7. 远程桌面RDP后无法使用串流如Steam、Teamviewer、向日葵、Moonlight等
  8. Cubase Elements 11.0.40 WiN 元素完整版编曲录音软件下载
  9. DLIN(三):增删改
  10. python 如何获取一年多少天,如何获取一年中某个月多少天