QT如何打开usb摄像头
时间: 2023-11-17 12:07:49 浏览: 109
在QT中,可以使用OpenCV库来打开USB摄像头。以下是使用OpenCV库打开USB摄像头的示例代码:
```cpp
#include <opencv2/opencv.hpp>
int main()
{
cv::VideoCapture cap(0); // 打开默认的摄像头
if (!cap.isOpened()) // 检查摄像头是否打开
{
std::cerr << "Failed to open camera!" << std::endl;
return -1;
}
cv::namedWindow("Camera", cv::WINDOW_NORMAL); // 创建一个窗口
while (true)
{
cv::Mat frame;
cap >> frame; // 从摄像头读取一帧图像
if (frame.empty()) // 检查是否读取到图像
{
std::cerr << "Failed to read frame from camera!" << std::endl;
break;
}
cv::imshow("Camera", frame); // 在窗口中显示图像
if (cv::waitKey(30) >= 0) // 等待用户按下按键
break;
}
cap.release(); // 释放摄像头资源
cv::destroyAllWindows(); // 关闭窗口
return 0;
}
```
在此代码中,`cv::VideoCapture`类用于打开摄像头。`cap(0)`表示打开默认的摄像头。如果要打开其他摄像头,可以使用相应的摄像头ID。例如,如果要打开第二个摄像头,可以使用`cap(1)`。
使用`cap.isOpened()`检查摄像头是否成功打开。如果打开失败,将输出错误信息并退出程序。
使用`cv::namedWindow`创建一个名为“Camera”的窗口。使用`cv::imshow`在窗口中显示读取到的图像。使用`cv::waitKey`等待用户按下按键。如果用户按下任何键,程序将退出。
使用`cap.release()`释放摄像头资源。使用`cv::destroyAllWindows()`关闭窗口。
注意:在使用OpenCV库时,需要在项目中添加OpenCV库的头文件和库文件。可以使用QtCreator自带的向导来配置OpenCV库路径。
阅读全文