赞
踩
1.函数:cv2.VideoCapture(参数)
2.参数说明:
(1)开启摄像头:参数一般为0,你可以通过设置成 1 或 者其他的来选择别的摄像头。
(2)从文件夹中获取视频:参数为字符串形式的文件路径
3.示例:
cap = cv2.VideoCapture(0) #cap:存放参数
1.函数:cap.read()
2.函数说明:
(1)cap.read 中cap与捕获视频函数存放函数一致,可以自己命名,括号一般不用填写。
(2)ret,frame=cap.read函数会返回两个函数值。一个为布尔逻辑值(True、False),表示是否读到视频画面帧,返回到ret。另一个是视频画面帧信息(矩阵)返回到frame。
3.示例:
ret, frame = cap.read() #ret布尔值,frame视频画面信息
1.函数:cap.is Opened()
2.说明:函数返回值为布尔值,括号里一般不用填写。
3.示例:
- while(cap.isOpened()):
- ret,frame=cap.read()
1.函数:cv2.imshow('窗口名称',视频存放参数)
2.示例
cv2.imshow('viedo',cap)
在我们捕获视频,并对每一帧都进行加工之后我们想要保存这个视频。对于图片来时很简单只需要使用 cv2.imwrite()。但对于视频来说就要多做点工作。 这次我们要创建一个 VideoWriter 的对象。我们应该确定一个输出文件的名字。接下来指定 FourCC 编码、播放频率和帧的大小也都 需要确定。
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)
FourCC 码以下面的格式传给程序,以 MJPG 为例:cv2.cv.FOURCC('M','J','P','G') 或者 cv2.cv.FOURCC(*'MJPG')。
有了上述背景补充,我们可以了解到,保存一个视频需要FourCC编码值、帧率值、视频分辨率。在保存视频时,我们可以按照需求自己定义所需参数值,或者保持原视频参数不变。后一种情况相比第一种情况,只是多了获取原视频参数的操作。
①获取FourCC值
- fourcc = int(cap.get(cv2.CAP_PROP_FOURCC))
- print('fourcc=',fourcc)
②获取原视频帧率
- fps = cap.get(cv2.CAP_PROP_FPS)
- print('fps=%d'%fps)
③获取原视频的宽、高
- frameSize=(int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
- print('frameSize=', frameSize)
out = cv2.VideoWriter('需要保存视频的文件路径',fourcc, 帧率值, (宽,高))
out = cv2.VideoWriter("outputVideo", fourcc, fps, frameSize)
out.write(frame)
1.函数:cv2.waitKey(参数)
2.说明:括号中参数表示读取一帧所需的时间(毫秒),一般25毫秒就可以了。与图像键盘绑定函数用法一样。
1.函数:cv2.cvtColor(frame,cv2.Color_BGR2GRAY)
2.示例:
gray=cv2.cvtColor(frame,cv2.Color_BGR2GRAY)
加载一个视频,进行灰度显示,用‘q’键控制保存时长
- import cv2
- cap=cv2.VideoCapture('F:/video/video.mp4')
- fourcc = int(cap.get(cv2.CAP_PROP_FOURCC))
- print('fourcc=', fourcc)
- fps = cap.get(cv2.CAP_PROP_FPS)
- print('fps=%d' % fps)
- frameSize = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
- print('frameSize=', frameSize)
- out= cv2.VideoWriter('F:/video/gray.mp4', fourcc, fps, frameSize)
- while(cap.isOpened()):
- ret,frame=cap.read()
- if ret==True:
- gary=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
- out.write(gary)
- cv2.imshow('video',gary)
- if cv2.waitKey(1) == ord('q'):
- break
- cap.release()
- out.release()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。