• 大小: 5.77MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-26
  • 语言: 其他
  • 标签:

资源简介

当有摄像头接入时,则采集实时视频显示到界面并且使用子线程保存视频,并且当检测到有服务器连接时,则发送每帧图像到服务器,并且实时显示。当没有检测到摄像头时,可以打开保存的录像视频,显示到界面播放的同时通过tcp协议发送到服务器端显示。

资源截图

代码片段和文件信息

#include “camaraget.h“
#include “ui_camaraGet.h“

camaraGet::camaraGet(QWidget *parent) :
    QWidget(parent)
    ui(new Ui::camaraGet)
{
    ui->setupUi(this);
    op=0;
    ui->label->setScaledContents(true);
    ui->label_2->setScaledContents(true);
    video=0;
    timer=new QTimer();
    camthread=new Camthread();
    tcpSocket=new QTcpSocket();
    /*信号和槽*/
    //message=QString(“OK“);
    connect(tcpSocketSIGNAL(readyRead())thisSLOT(readMessage()));
    connect(camthreadSIGNAL(sig_GetOneframe(QImage))thisSLOT(readFarme(QImage )));
    //connect(timer SIGNAL(timeout()) this SLOT(readFarme()));  // 时间到,读取当前摄像头信息
    connect(ui->open SIGNAL(clicked()) this SLOT(openCamara()));
    connect(ui->pic SIGNAL(clicked()) this SLOT(takingPictures()));
    connect(ui->closeCam SIGNAL(clicked()) this SLOT(closeCamara()));
  //  connect(tcpSocketSIGNAL(error(QAbstractSocket::SocketError))this
  //          SLOT(displayerror(QAbstractSocket::SocketError)));

}


void camaraGet::openCamara()
{

    if(op==1)
    {
        return ;
    }
    connect(camthreadSIGNAL(sig_err(QString))thisSLOT( openvideo()));
    camthread->startPlay();
    op=1;
}

void camaraGet::openvideo()
{
    op=0;
    QMessageBox::warning(this“Warning““Cameras are not found.“);
    //connect(ui->open SIGNAL(clicked()) this SLOT(openvideo()));
    QString filename = QFileDialog::getOpenFileName(thistr(“action“)
                       “./“
                        “Image file(*.AVI *.MP4)“0) ;
    if (!filename.isEmpty())
    {
        cap.open(filename.toLatin1().data());
     }
    if(!cap.isOpened()){
        QMessageBox::information(thistr(“提示“)tr(“视频没有打开“));
        video=0;
    }
    else
       video=1;

    timer->start(50);
    connect(timer SIGNAL(timeout()) this SLOT(readFarme()));
    connect(ui->open SIGNAL(clicked()) this SLOT(openCamara()));
    connect(ui->pic SIGNAL(clicked()) this SLOT(takingPictures()));
    connect(ui->closeCam SIGNAL(clicked()) this SLOT(closeCamara()));
    connect(tcpSocketSIGNAL(readyRead())thisSLOT(readMessage()));
}

void camaraGet::readMessage()
{
     qDebug()<<4;
     qDebug() << message;
    QDataStream in(tcpSocket);
     //in.setVersion(QDataStream::Qt_4_6);
     if (blockSize == 0) {
            //判断接收的数据是否大于两字节,也就是文件的大小信息所占的空间
            //如果是则保存到blockSize变量中,否则直接返回,继续接收数据
            if(tcpSocket->bytesAvailable() < (int)sizeof(quint16)) return;  //bytesAvailable()返回字节数
            in >> blockSize;
        }
     if(tcpSocket->bytesAvailable() < blockSize) return;
        // 将接收到的数据存放到变量中
         in >> message;
         // 显示接收到的数据*/
        // qDebug() << message;

}

void camaraGet::readFarme()
{
    blockSize=0;//数据大小初始化为0
    tcpSocket->abort();//取消已有链接
    //连接到某个ip的某个端口,
    tcpSocket->connectToHost(QHostAddress::LocalHost8888);
    if(video)
    {
        qDebug()<<“baofang shipin !“;
        Mat frame;
        //cap>>frame;
        if(cap.read(frame))
       {
            cvt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        174  2017-02-16 16:38  server\main.cpp

     文件       1592  2017-05-10 22:34  server\main.o

     文件       8382  2017-02-16 16:45  server\Makefile

     文件       3133  2017-05-10 22:34  server\moc_server.cpp

     文件       7532  2017-05-10 22:34  server\moc_server.o

     文件      30811  2017-05-10 22:34  server\server

     文件       3641  2017-05-10 22:33  server\server.cpp

     文件        710  2017-05-10 22:34  server\server.h

     文件       9984  2017-05-10 22:34  server\server.o

     文件        311  2017-02-16 16:45  server\server.pro

     文件      27251  2017-05-10 22:34  server\server.pro.user

     文件        700  2017-02-16 16:46  server\server.ui

     文件       1554  2017-02-16 16:46  server\ui_server.h

     文件       6684  2017-05-10 23:07  paizhao\camaraget.cpp

     文件       1087  2017-05-10 22:00  paizhao\camaraget.h

     文件      23904  2017-05-10 23:08  paizhao\camaraget.o

     文件       1803  2017-05-09 10:45  paizhao\camaraGet.ui

     文件       1841  2017-05-10 23:10  paizhao\camthread.cpp

     文件        866  2017-05-09 11:03  paizhao\camthread.h

     文件       4640  2017-05-10 23:08  paizhao\camthread.o

     文件        180  2016-04-27 11:19  paizhao\main.cpp

     文件       2088  2017-05-10 22:00  paizhao\main.o

     文件       8998  2017-05-09 10:54  paizhao\Makefile

     文件       3346  2017-05-10 22:00  paizhao\moc_camaraget.cpp

     文件       8540  2017-05-10 22:00  paizhao\moc_camaraget.o

     文件       3471  2017-05-09 11:04  paizhao\moc_camthread.cpp

     文件       5468  2017-05-09 11:04  paizhao\moc_camthread.o

     文件      52021  2017-05-10 23:08  paizhao\paizhao

     文件        367  2017-05-09 10:53  paizhao\paizhao.pro

     文件      27221  2017-05-10 22:34  paizhao\paizhao.pro.user

............此处省略7个文件信息

评论

共有 条评论

相关资源