首页 > 其他分享 >qt读取摄像头

qt读取摄像头

时间:2023-10-16 23:22:05浏览次数:31  
标签:qt image update label video include MainWindow 摄像头 读取

Qt中实时调取摄像头(利用OpenCV)_opencv获取网络摄像头 qt_Loading_create的博客-CSDN博客

C++版本
#include <opencv2/opencv.hpp>
#include "mainwindow.h"
using namespace std;
using namespace cv;
#undef main
 int  main(){
    Mat image;
    VideoCapture cap(0);
    //cap.open(0);
    while (1){
        cap>>image;
        imshow("1232",image);
        if(waitKey(30)>=0) break;
    }
    return 0;
}

opencv版本
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <opencv2/opencv.hpp>
#include <QTimer>
#include <QLabel>
#include <QPushButton>

using namespace cv;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();


private:
    Mat video_image;
    VideoCapture cap;
    QTimer *label_update;
    int flag=0;
    QLabel *label;
    QPushButton *pushButton;
private slots:
    void pushButtonClicked();
    void video_update();
};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->setGeometry(0,0,800,480);
    label=new QLabel(this);
    label->setGeometry(0,0,300,300);
    label->setStyleSheet("QLabel { "> #f8f8f8; border-width: 2px; border-style: solid; border-color: #4B91E5; }");

    pushButton=new QPushButton(this);
    pushButton->setGeometry(0,320,100,30);
    pushButton->setText("打开摄像头");

    label_update=new QTimer();

    connect(label_update,SIGNAL(timeout()),this,SLOT(video_update()));
    connect(pushButton,SIGNAL(clicked()),this,SLOT(pushButtonClicked()));
}

MainWindow::~MainWindow()
{

}

void MainWindow::video_update()
{
    cap>>video_image;
    cvtColor(video_image,video_image,COLOR_BGR2RGB);
    label->setPixmap(QPixmap::fromImage(QImage(video_image.data,video_image.cols,video_image.rows,QImage::Format_RGB888)));

}

void MainWindow::pushButtonClicked()
{
    if(flag==0)
    {
        cap.open(0);
        label_update->start(30);
        flag++;
        pushButton->setText("CLOSE");

    }
    else
    {
        label_update->stop();
        cap.release();
        label->clear();
        pushButton->setText("open");
        flag=0;
    }
}





标签:qt,image,update,label,video,include,MainWindow,摄像头,读取
From: https://www.cnblogs.com/dq0618/p/17768687.html

相关文章

  • 用java.net.URL类等访问HTTP服务器读取网页数据
    大力:“Java网络编程需要通过套接字去进行客户程序与服务器程序的交互,这种底层的通信实现起来比较麻烦,有没有现成的API呢?”卫琴:“JDK为基于HTTP协议的网络通信提供了协议处理框架API,Java客户程序通过它来访问HTTP服务器,会很方便。”本文以HTTP客户程序为例,介绍URL类和URLConnection......
  • MQTT控制报文格式 -- SUBSCRIBE – 客户端订阅主题请求
    订阅数据包从客户端发送到服务器以创建一个或多个订阅。每个订阅都会登记客户对一个或多个主题的兴趣。服务器向客户端发送PUBLISH数据包,以便转发已发布到与这些订阅匹配的主题的应用程序消息。SUBSCRIBE数据包还指定(对于每个订阅)服务器可以向客户端发送应用程序消息的最大......
  • MQTT控制报文格式 -- PUBREC – Publish received (QoS 2 publish received, part 1)
    PUBREC数据包是对QoS2的PUBLISH数据包的响应。它是QoS2协议交换的第二个数据包。该数据包剩余长度为2该数据包没有Payload该数据包可变包头长度为2个字节1.固定包头FixedHeaderBit76543210byte1MQTTControlPackettyp......
  • Qt -- 判断信号是否绑定成功
    1.判断信号是否正确连接通过判断connect的返回值是否为true。bool_ok=connect(this,SIGNAL(signal1()),this,SLOT(slot1()));//打印trueqDebug()<<_ok;2.判断信号是否被连接了receivers返回的是该信号的连接数,如果大于0则为信号有连接。原型:[protected]i......
  • Pandas 读取Eexcel
    间隔N行,读取某列数据importpandasaspddefread_vertical(sheet_name,col_idx,gap):"""竖着读数据,:paramsheet_name:第几个sheet:paramcol_idx:第几列,从0开始:paramstep:间隔:return:"""#header=None没有标题......
  • es 支持实时的数据读取吗
    通常我们说es是近实时的搜索服务,指的是es写入一条数据后,默认1s后才可以搜索到,但我们在实际使用过程中指定id可以进行实时的查询。客户端使用GetRequest发起的查询默认是实时的,分片会从translog中读取数据并返回,为什么通过id查询就是实时的呢?es在写入数据时,首先写......
  • MQTT控制报文格式 -- PUBREL – Publish release (QoS 2 publish received, part 2)
    PUBREL数据包是对PUBREC数据包的响应。它是QoS2协议交换的第三个数据包。该数据包剩余长度为2该数据包没有Payload该数据包可变包头长度为2个字节1.固定包头FixedHeaderBit76543210byte1MQTTControlPackettype(6)R......
  • Qt高级开发视频教程|QT视频教程下载
    点击下载——Qt高级开发视频教程|QT视频教程下载 提取码:ldgi Qt高级开发视频教程下载,视频,源码,课件都有!Qt是一个1991年由QtCompany开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊......
  • MQTT控制报文格式 -- PUBACK(Publish Acknowledgement) Publish消息应答
    该消息是接收方收到QoS1的PUBLISH消息后,返回给发送方的应答消息。该消息由于没有Payload,固定包头的剩余长度值为21.固定包头FixedHeaderBit76543210byte1MQTTControlPackettype(4)Reserved 01000......
  • MQTT控制报文格式 -- PUBLISH 消息发布
    该数据包定义了客户端和服务端发布MQTT消息格式。1.固定包头FixedheaderBit76543210byte1MQTTControlPackettype(3)DUPflagQoSlevelRETAIN 0011XXXXbyte2RemainingLength......