用C++实现opencv调用摄像头
时间: 2024-05-19 07:15:51 浏览: 77
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 打开默认摄像头
VideoCapture cap(0);
// 检查是否成功打开摄像头
if (!cap.isOpened()) {
cerr << "Unable to open the default camera!" << endl;
return -1;
}
// 创建窗口
namedWindow("Camera", WINDOW_AUTOSIZE);
while (true) {
Mat frame;
// 读取一帧图像
cap.read(frame);
// 显示图像
imshow("Camera", frame);
// 等待按键
int key = waitKey(30);
// 按下ESC键退出
if (key == 27) {
break;
}
}
// 释放摄像头
cap.release();
// 关闭窗口
destroyAllWindows();
return 0;
}
相关问题
vscode c++ opencv调用摄像头
可以使用OpenCV库中的VideoCapture类来调用摄像头。首先需要在代码中引入头文件<opencv2/opencv.hpp>,然后使用VideoCapture类的构造函数创建一个对象,指定摄像头的编号或者视频文件的路径。例如:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
VideoCapture cap(0); // 0表示默认摄像头,也可以指定其他编号或者视频文件路径
if (!cap.isOpened()) {
std::cout << "Failed to open camera!" << std::endl;
return -1;
}
Mat frame;
while (true) {
cap >> frame; // 读取一帧图像
imshow("Camera", frame); // 显示图像
if (waitKey(30) == 27) break; // 按ESC键退出
}
return 0;
}
```
这段代码可以打开摄像头并实时显示摄像头捕获的图像。
C++opencv调用摄像头显示视频
可以使用OpenCV库中的VideoCapture类来调用摄像头并显示视频。以下是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture cap(0); // 0表示调用默认的摄像头,如果有多个摄像头可以传入对应的编号
if (!cap.isOpened())
{
cout << "Failed to open camera." << endl;
return -1;
}
namedWindow("Camera", WINDOW_NORMAL);
while (true)
{
Mat frame;
cap >> frame; // 读取视频帧
if (frame.empty())
{
cout << "Failed to capture frame." << endl;
break;
}
imshow("Camera", frame);
if (waitKey(30) == 'q') // 按q键退出
{
break;
}
}
cap.release(); // 释放摄像头
destroyAllWindows();
return 0;
}
```
该代码首先创建了一个名为`Camera`的窗口,然后使用`VideoCapture`类调用默认的摄像头。在一个无限循环中,读取每一帧视频,并在窗口中显示。按下`q`键可以退出程序。最后释放摄像头并关闭窗口。
阅读全文