在Qt下没有专门的视频采集与播放工具。这里使用了OpenCV所带的库函数捕获摄像头的视频图像。这里要注意的是Qt的图像格式是RGB格式,而OpenCV的格式是BGR,所以要进行颜色通道的转换,用到了OpenCV的库函数:cvtColor函数。
Qt的图像存储格式是QImage类,而OpenCV的图像格式是Mat,所以要进行转换:
Mat image = imread("1.jpg");
//改变颜色通道的顺序
cv::cvtColor(image, image, CV_BGR2RGB);
//Qt图像
QImage img = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888);
//显示在label中
ui->label->setPixmap(QPixmap::fromImage(img)); //将QImage 格式转换成 QPixmap格式用于绘制图像
新建一个Qt GUI应用,建立一个新类CameraGet,继承QWidget类。创建的GUI界面如下:
CameraGe