【OpenCV】从相机逐帧读取图片并保存到本地(C++、Python实现)

您所在的位置:网站首页 OpenCV读取最新帧并保存 【OpenCV】从相机逐帧读取图片并保存到本地(C++、Python实现)

【OpenCV】从相机逐帧读取图片并保存到本地(C++、Python实现)

2023-06-02 11:32| 来源: 网络整理| 查看: 265

文章目录 前言1. 打开摄像头2. 逐帧读取图像3. 显示图像4. 保存图像5. 按键事件处理6. 完整代码实现7. 总结

前言

本文将介绍使用OpenCV从摄像头逐帧读取图片并保存到本地的C++和Python实现。主要涉及的技术点包括:打开摄像头、逐帧读取图像、显示图像、保存图像、按键事件处理等。

完整代码见文末

1. 打开摄像头

在OpenCV中,可以使用VideoCapture类来打开摄像头。其中,0表示默认打开第一个摄像头,1表示第二个,以此类推。如果参数是字符串类型,则表示打开相应路径下的视频文件。打开摄像头的代码如下所示:

C++实现:

VideoCapture cap(0); // 打开摄像头 if(!cap.isOpened()) // 检查摄像头是否成功打开 { cerr break; }

Python实现:

key = cv2.waitKey(30) if key == ord('s'): # 保存图像 filename = f"image{count}.jpg" cv2.imwrite(filename, frame) print(f"Saved {filename}") count += 1 elif key == 27: # 退出 break

代码实现都类似,只是语法略有不同。完整代码如下所示:

6. 完整代码实现

C++实现:

#include #include using namespace cv; using namespace std; int main() { // 打开默认的摄像头 VideoCapture cap(0); // 检查视频流是否打开 if (!cap.isOpened()) { cerr stringstream ss; ss count}.png" cv2.imwrite(filename, frame) print(f"Saved {filename}") count += 1 # 按下ESC键退出 if cv2.waitKey(1) & 0xFF == 27: break # 释放视频流 cap.release() # 关闭所有窗口 cv2.destroyAllWindows() 7. 总结

在这篇文章中,我们介绍了如何使用OpenCV从摄像头逐帧读取图像,并将每帧图像保存到本地。我们提供了C++和Python两种不同的实现方式。这些代码是处理,录制和处理基于图像的数据的开端。OpenCV的框架可帮助开发人员使此过程变得更加容易。

参考资料:

[1] OpenCV官方文档:https://docs.opencv.org/4.5.3/d8/dfe/classcv_1_1VideoCapture.html [2] OpenCV官方文档:https://docs.opencv.org/4.5.3/d7/dfc/group__highgui.html#ga5628525ad33f52eab17feebcfba3



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3