GOQTTemplate简单介绍

时间:2023-03-09 03:37:28
GOQTTemplate简单介绍

集合OpenCV的视频功能和QCamera的摄像头接口,开发出易于理解的、结构简单的摄像头控制和采集框架。

MainWindow);
    bCameraOpen = false;
    //显示的图像自动缩放
    ui->label->setScaledContents(true);
    ui->label_2->setScaledContents(true);

}

在界面初始化的时候,就直接填充界面。注意这里setScaledContents的设置使得图像能够填充满整个窗体。
另一个非常关键的一句就是
connect(timer, SIGNAL(timeout()), this, SLOT(readFarme()));  // 时间到,读取当前摄像头信息
相当于ontimer,非常直观吧。
,,);
        cvtColor(tmp,matDst,COLOR_GRAY2BGR);
    }
    else
    {
        matDst = matFrame.clone();
    }
    // 格式转换
    QPixmap qpixmap = Mat2QImage(matDst);
    // 将图片显示到label上
    ui->label->setPixmap(qpixmap);
}
这里使用了Mat2QImage函数,将图像转换为qpixmap,并且显示在label上
//打开磁盘上的图片
void MainWindow::on_pushButton_clicked()
{
     //第3个参数表示查找文件时从哪个目录开始,如果为"."的话,表示从该工程目录开始查找,最后那个参数的过滤器的名字之间
     //要用空格,否则识别不出来
     QString img_name = QFileDialog::getOpenFileName( this, tr("Open Image"), ".",tr("Image Files(*.png *.jpg *.jpeg *.bmp)"));
     if(img_name == "")
         return;
     //toAscii()返回8位描述的string,为QByteArray,data()表示返回QByteArray的指针,QByteArray为字节指针
     //现在已改为toLatinl函数
     Mat src = imread(img_name.toLatin1().data());
     cvtColor( src, src, CV_BGR2RGB );
     QImage img = QImage( (const unsigned char*)(src.data), src.cols, src.rows, QImage::Format_RGB888 );
     ui->label->setPixmap( QPixmap::fromImage(img) );
     img_name.clear();
}
可以直接使用函数,打开磁盘上的图片。
);
    videocapture);
    );
}
摄像头的打开也非常直接。
GOQTTemplate简单介绍

添加了一些修改,使用QT来做,真的是非常方便:

GOQTTemplate简单介绍

项目地址:

https://github.com/jsxyhelu/GOQTTemplate3

欢迎提出宝贵意见。