C++用摄像头循环生成图片
时间: 2024-05-08 10:22:04 浏览: 84
你可以使用OpenCV库来进行摄像头的读取和图片的生成。以下是一个简单的示例代码,可以在循环中从摄像头读取帧,并将其保存为图像文件:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
VideoCapture cap(0); //打开摄像头,设备号为0
if (!cap.isOpened()) //检查摄像头是否成功打开
{
cout << "Error opening video stream" << endl;
return -1;
}
int count = 0; //生成的图片计数器
while (true)
{
Mat frame;
cap.read(frame); //读取摄像头帧
imshow("Frame", frame); //显示摄像头帧
char key = waitKey(1); //等待用户按键
if (key == 'q') //如果用户按下了'q'键,退出循环
{
break;
}
//将当前帧保存为JPEG图像文件
string filename = "image" + to_string(count) + ".jpg";
imwrite(filename, frame);
count++; //计数器加1
}
cap.release(); //释放摄像头
destroyAllWindows(); //关闭所有窗口
return 0;
}
```
运行该程序后,它将打开摄像头并开始循环读取帧。每次读取到帧后,它将显示在窗口中,并等待用户按下按键。如果用户按下了'q'键,程序将退出循环。否则,程序将把当前帧保存为JPEG图像文件,文件名为 "image0.jpg", "image1.jpg", "image2.jpg", ... 以此类推。
阅读全文