概述
文章目录
- 1.读取并显示视频
- 2.保存视频
1.读取并显示视频
代码速记:
- cv2.VideoCapture()
- cap.isOpened()
- cap.open()
- cap.get()
- cap.set()
- cap.read()
- cap.release()
实战:
def capture(self):
#【1】创建Capture对象
cap = cv2.VideoCapture(0)#参数为设备索引号或视频文件。0为笔记本内置摄像头
if cap.isOpened():#检验摄像头是否打开
print("镜头是打开的")
else:
cap.open(0)#打开摄像头
print(cap.get(0))#参数是0-18的整数,每个数代表视频的一个属性
w=cap.get(3)
h=cap.get(4)
ret=cap.set(3,320)#用set函数来设置某些属性值
ret=cap.set(4,240)
while (True):
#【2】一帧一帧捕获
ret, frame = cap.read()#帧读取正确就返回True。最后检查返回值看是否到视频结尾
# 【3】把该帧图像转为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 【4】显示结果
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 【5】释放Capture对象
cap.release()
cv2.destroyAllWindows()
2.保存视频
代码速记:
- cv2.VideoWriter_fourcc()
- cv2.VideoWriter()
- cv2.flip()
- out.write()
实战:
def save_video(self):
cap = cv2.VideoCapture(0)
# 定义codec,创建VideoWriter对象
fourcc = cv2.VideoWriter_fourcc(*'XVID')
#FourCC 就是一个4 字节码,用来确定视频的编码格式。
out = cv2.VideoWriter('../res_images/output.avi', fourcc, 20.0, (640, 480))
while (cap.isOpened()):
ret, frame = cap.read()
if ret == True:
frame = cv2.flip(frame, 0)
# 写入flip的帧
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
FourCC 就是一个4 字节码,用来确定视频的编码格式。可用的编码列表可以从fourcc.org查到。这是平台依赖的。
- In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is more preferable. MJPG results in high size video. X264 gives very small size video)
- In Windows: DIVX (More to be tested and added)
FourCC 码以下面的格式传给程序,以MJPG 为例:
cv2.VideoWriter_fourcc('M','J','P','G')
或者cv2.VideoWriter_fourcc(*'MJPG)
。
最后
以上就是眼睛大秀发为你收集整理的opencv视频基本操作的全部内容,希望文章能够帮你解决opencv视频基本操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复