使用OpenCV捕获摄像头图像并保存

2星 需积分: 31 111 下载量 74 浏览量 更新于2024-09-08 3 收藏 1KB TXT 举报
"使用OpenCV调用摄像头并截图保存的代码示例" OpenCV(Open Source Computer Vision Library)是一个强大的计算机视觉库,它包含了处理图像和视频的各种功能。在这个示例中,我们将讨论如何使用OpenCV来打开摄像头、捕获帧并将其保存为图片。 首先,我们需要包含必要的头文件,分别是`opencv2\core\core.hpp`、`opencv2\highgui\highgui.hpp`和`opencv2\imgproc\imgproc.hpp`。这些文件提供了OpenCV的核心功能,包括图像处理和用户界面操作。 在代码中,定义了两个常量:`camera_name`表示摄像头窗口的名称,`picwindow_name`表示显示截图的窗口名称。接着,`main()`函数是程序的入口点,我们在这里进行所有操作。 `VideoCapture capture(0)`用于初始化一个视频捕捉对象,参数0通常代表默认摄像头。`capture.isOpened()`检查摄像头是否成功打开,如果未打开,程序会输出错误信息并返回0。 `Mat frame`是一个OpenCV的矩阵类实例,用于存储每一帧的图像数据。`char key`用于接收用户输入,`char picture_name[200]`用来存储图片文件名。 `namedWindow`函数创建了两个窗口,一个用于显示摄像头的实时画面,另一个用于显示已保存的截图。`waitKey(30)`函数会在每30毫秒检查一次用户是否按下键盘键,这样可以实现循环播放摄像头的视频流。 在`while`循环中,`capture >> frame`从摄像头获取一帧图像并将其存储在`frame`变量中。`imshow`函数将图像显示在相应的窗口上。当用户按下ESC键时,`while`循环结束,程序退出。如果按下空格键,`picture_name`会被更新为新的文件名,并使用`imwrite`函数将当前帧保存为JPEG图片。保存后的图片会显示在`picwindow_name`窗口中。 这个程序提供了一个基础的框架,可以在此基础上添加更多功能,例如调整图像质量、添加时间戳、改变保存图片的格式等。通过理解这段代码,开发者可以进一步学习OpenCV在实时视频处理和图像保存方面的应用。