opencv c++打开摄像头
时间: 2023-10-03 12:10:07 浏览: 95
以下是使用OpenCV C++库打开摄像头的示例代码:
```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;
}
while (true)
{
Mat frame;
cap >> frame; // 读取一帧图像
if (frame.empty()) // 判断是否成功读取图像
break;
imshow("Camera", frame); // 显示图像
if (waitKey(30) == 27) // 按ESC键退出
break;
}
cap.release(); // 释放摄像头
return 0;
}
```
该示例代码中,使用VideoCapture类打开默认的摄像头,并在while循环中读取每一帧图像,通过imshow函数在窗口中显示图像,使用waitKey函数等待用户按下ESC键退出程序,最后使用release函数释放摄像头资源。
相关问题
opencv c++调用摄像头
在C++中使用OpenCV调用摄像头可以实现实时视频捕捉和处理。下面是一个简单的示例代码:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 打开摄像头
cv::VideoCapture cap(0);
if (!cap.isOpened()) {
std::cout << "无法打开摄像头" << std::endl;
return -1;
}
// 创建窗口
cv::namedWindow("Camera", cv::WINDOW_NORMAL);
while (true) {
cv::Mat frame;
// 读取摄像头帧
cap.read(frame);
// 显示帧
cv::imshow("Camera", frame);
// 按下ESC键退出循环
if (cv::waitKey(1) == 27) {
break;
}
}
// 释放摄像头和窗口
cap.release();
cv::destroyAllWindows();
return 0;
}
```
这段代码首先创建了一个`VideoCapture`对象`cap`,并通过`cap.open(0)`打开了默认的摄像头。然后,通过循环不断读取摄像头帧并显示在窗口中,直到按下ESC键退出循环。最后,释放摄像头和窗口。
opencv用c++打开摄像头
您好!使用 OpenCV 在 C 语言中打开摄像头可以使用如下代码:
```c
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 打开默认摄像头
VideoCapture cap(0);
// 检查是否成功打开摄像头
if (!cap.isOpened()) {
cerr << "Error: Unable to open camera!" << endl;
return -1;
}
// 循环显示每一帧
while (true) {
Mat frame;
// 读取一帧图像
cap.read(frame);
// 显示图像
imshow("Camera", frame);
// 等待 30 毫秒并检查是否按下 ESC 键
if (waitKey(30) == 27) {
break;
}
}
// 释放摄像头并关闭窗口
cap.release();
destroyAllWindows();
return 0;
}
```
该代码使用 `VideoCapture` 类打开默认摄像头(通常为编号为 0 的摄像头),并循环读取每一帧图像并显示出来。当按下 ESC 键时,程序会退出循环并释放摄像头。
阅读全文