qt使用usb摄像头
时间: 2023-12-17 20:00:22 浏览: 124
在Qt中使用USB摄像头可以使用OpenCV库来进行操作。下面是一个简单的示例代码,演示了如何在Qt中显示USB摄像头的实时视频流:
```cpp
#include <QApplication>
#include <QMainWindow>
#include <QLabel>
#include <opencv2/opencv.hpp>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow window;
QLabel label(&window);
window.setCentralWidget(&label);
window.show();
cv::VideoCapture cap(0); // 打开默认的摄像头(编号为0)
if (!cap.isOpened()) {
qDebug() << "无法打开摄像头";
return -1;
}
cv::Mat frame;
while (true) {
cap.read(frame); // 读取摄像头帧
// 将OpenCV的Mat转换为Qt的QImage以显示在Qt窗口中
QImage qimage(frame.data, frame.cols, frame.rows, QImage::Format_RGB888);
qimage = qimage.rgbSwapped(); // 颜色通道交换(BGR -> RGB)
// 将QImage显示在Qt窗口中
label.setPixmap(QPixmap::fromImage(qimage));
if (cv::waitKey(1) == 'q') // 按下 'q' 键退出循环
break;
}
cap.release(); // 释放摄像头资源
return a.exec();
}
```
这个例子创建了一个简单的Qt窗口,使用OpenCV库从USB摄像头中读取实时视频流,并将其显示在窗口中。你可以根据需要进行进一步的处理和功能扩展。记得在.pro文件中添加对OpenCV库的链接配置。
希望这个例子能帮到你!如有任何问题,请随时提问。
阅读全文