opencv相机读取的基本操作
快速入门
cap获取、writer获取、frame获取、frame写入、释放cap和writer
import cv2
videoCapture=cv2.VideoCapture(path)#读取本地视频
rtsp地址(例海康)
address=rtsp://admin:账号@地址:端口号/Streaming/tracks/摄像头号码?starttime=视频日期t视频起始时间z&endtime=视频日期t视频终止时间
videoCapture = cv2.VideoCapture(address)#读取网上视频
1.获取视频参数
#计算当前位置在视频中是多少毫秒temp1=cap.get(cv2.CAP_PROP_POS_MSEC)
#计算视频的高temp2=cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
#计算视频的宽temp3=cap.get(cv2.CAP_PROP_FRAME_WIDTH)
#得到视频的帧率temp4=cap.get(cv2.CAP_PROP_FPS)
#得到视频的编码方式temp5=cap.get(cv2.CAP_PROP_FOURCC)
#得到视频的总帧数temp6=cap.get(cv2.CAP_PROP_FRAME_COUNT)
2.摄像头初始化成功
videoCapture.isOpened()
返回True即成功
3.读取视频
ret, frame = videoCapture.read()
4.保存视频
cv2.imwrite(savepath, frame)
5.关闭窗口释放内存
videoCapture.release()
cv2.destroyAllWindows()
import cv2
import numpy as np
# no1 cap IO
cap = cv2.VideoCapture(0)
# no2 writer
writer = cv2.VideoWriter('target.avi', cv2.VideoWriter_fourcc(*'XVID'), cap.get(cv2.CAP_PROP_FPS), (int(cap.get(3)), int(cap.get(4))))
# parameters
print(cap.get(3))
print(cap.get(4))
print(cap.get(cv2.CAP_PROP_FPS))
# no3 open
while cap.isOpened():
# no4 get
ret, frame = cap.read()
# no5 again open
if ret == True:
# no6 write
writer.write(frame)
# no7 show
cv2.namedWindow("frame", 0)
cv2.imshow("frame", frame)
# no8 exit
if cv2.waitKey(10)==27:
break
else:
break
# no9 release
cap.release()
writer.release()
cv2.destroyAllWindows()