Opencv3 python学习2——视频基础
这次的内容包括opencv视频操作的最基础的读取视频、显示、使用摄像头、保存等等。
打开视频
cap = cv2.VideoCapture("1.mp4")
显示视频
我这里自己做了个测试,将视频转换成灰度
#ret和frame都是返回值,后者代表帧数
ret,frame = cap.read()
#将彩色的图像转换成灰度,从此可以看出read到的应该是每一帧的图像,frame应该是图片
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow("capture",gray)
释放摄像头对象和窗口
cap.release()
cv2.destroyAllWindows()
完整的代码
import numpy as np
import cv2
cap = cv2.VideoCapture("1.mp4")
while(1):
#ret和frame都是返回值,后者代表帧数
ret,frame = cap.read()
#将彩色的图像转换成灰度,从此可以看出read到的应该是每一帧的图像,frame应该是图片
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow("capture",gray)
if cv2.waitKey(100) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
打开摄像头
如果是在笔记本上的话,0代表的就是笔记本的摄像头
cap = cv2.VideoCapture(0)
定义写入视频格式和写入对象
注意:opencv3中没有cv2.cv.fourcc,只有cv2.VideoWriter_fourcc
*视频格式 ‘XVID’可以为:
I420对应为未压缩的YUK文件.avi.
PIM1对应MPEG-1文件.avi
XVID对应MPEG-4文件.avi
THEO对应.ogv
FLVI对应flash视频.flv**
#opencv3中没有cv2.cv.fourcc,只有cv2.VideoWriter_fourcc
#fourcc = cv2.cv.FOURCC(*'XVID') #这个是opencv2中的写法
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("./video/test.avi",fourcc,20,(640,480))
保存视频
out.write(frame)
完整的摄像头使用代码
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
#opencv3中没有cv2.cv.fourcc,只有cv2.VideoWriter_fourcc
#fourcc = cv2.cv.FOURCC(*'XVID') #这个是opencv2中的写法
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("./video/test.avi",fourcc,20,(640,480))
while(1):
ret,frame = cap.read()
cv2.imshow("capture",frame)
out.write(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
参考资料:
【1】http://blog.youkuaiyun.com/huanglu_thu13/article/details/52337014
【2】http://blog.youkuaiyun.com/huanglu_thu13/article/details/52337234
【3】http://blog.youkuaiyun.com/huanglu_thu13/article/details/52337013