使用Python+Opencv从摄像头逐帧读取图片保存在本地
今天测试的时候,遇到了一个问题,测试需求是,需要把摄像头拍摄的实时视频逐帧率保存下来。
经过查阅资料以及网友帮助,目前已经完成。记录下来希望可以帮助有需要的朋友。
1、思路
使用Python+Opencv,从摄像头的实时视频流中逐帧读取图片,保存到本地
2、工具
- 安装Python
- 安装Opencv
3、分类
目前测试的过程中遇到了三种类型的摄像头数据读取,分别是:
- USB普通摄像机:
直接使用Python+Opencv,进行数据采集
self.cap = cv2.VideoCapture(0);0是本地摄像头
- USB工业摄像头:
使用厂家自带的SDK进行二次开发,例如某厂家的SDK如下:
- 网络摄像头:
从RTSP流中读取数据,读取方法,以大华普通网络摄像头为例:
4、示例
# -*- coding: cp936 -*-
"""
Author:xxxxxx
Date:2019-09-23
Discription:Read Camaro picture and save
"""
import cv2,os,time
import numpy as np
from multiprocessing import Process
import thread
class CamaroCap(object):
#打开摄像头
def __init__(self):
#self.cap = cv2.VideoCapture(0)
self.cap = cv2.VideoCapture("rtsp://admin:admin123@172.16.9.23/cam/realmonitor?channel=1&subtype=0")#获取网络摄像机
"""
self.cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480);
"""
#图片信息打印
def get_image_info(self,image):
print(type(image))
print(image.shape)
print(image.size)
print(image.dtype)
pixel_data = np.array(image)
print(pixel_data)
#逐帧读取数据并保存图片到本地制定位置
def Camaro_image(self):
i = 0
while(1):
"""
ret:True或者False,代表有没有读取到图片
frame:表示截取到一帧的图片
"""
ret,frame = self.cap.read()
ret,frame = self.cap.read()
#print("打印图片信息")
#self.get_image_info(frame)
# 展示图片
cv2.imshow('capture',frame)
#保存图片
cv2.imwrite(r"D:\image\\"+ str(i) + ".jpg",frame)
i = i + 1
if cv2.waitKey(1) & 0xFF == ord('q'):
break
if __name__ == '__main__':
outmasages = CamaroCap()
#调用摄像头
outmasages.Camaro_image()
#释放对象和销毁窗口
outmasages.cap.release()
cv2.destroyAllWindows()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY