利用opencv写一个c++代码,实现的功能为打开摄像头,并可以采集实时图片,(然后读取其中图像的长宽)可选,读取完毕后关闭摄像头,在界面中呈现
时间: 2024-12-14 09:20:27 浏览: 22
在C++中,你可以使用OpenCV库来实现这样的功能。这里是一个基本的代码片段,它会打开摄像头,捕获实时图像,读取图像尺寸并在窗口中展示:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 初始化摄像头
VideoCapture cap(0); // 使用默认摄像头(序号0),更换为相应设备序号
if (!cap.isOpened()) {
cerr << "Failed to open the camera." << endl;
return -1;
}
Mat frame;
namedWindow("Live Camera", WINDOW_NORMAL);
while (true) { // 循环读取视频帧
cap >> frame; // 从摄像头获取一帧
if (frame.empty()) {
cerr << "Could not grab frame from the camera." << endl;
break;
}
// 计算并打印当前图像的尺寸
int width = frame.cols;
int height = frame.rows;
cout << "Image size: " << width << "x" << height << endl;
imshow("Live Camera", frame); // 展示图像
if (waitKey(30) == 27) { // 按下 'Esc' 键退出
break;
}
}
// 读取完毕后关闭摄像头
cap.release();
destroyAllWindows();
cout << "Camera closed." << endl;
return 0;
}
阅读全文