opencv for python学习一之保存视频

来源:互联网 发布:淘宝刷销量会被 编辑:程序博客网 时间:2024/06/05 07:41

python中使用opencv有不少小坑,现在打算在博客里面一一记录学习心得,与各位初学者共勉。


首先,刚开始学的时候,用的是opencv官方的python指导教程,可是我的电脑里面的opencv版本还是2.x的,结果导致摄像头始终打不开,后来发现需要更新版本,换了3.0以后一切都好起来了。可是,在学到教程中保存摄像头视频这里又出了幺蛾子,那就是关于视频的编码,教程上都是这么写的:


fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('out.avi',fourcc, 20.0, (640,480))
可是按照这样写入代码,运行后得到的视频始终是空的,没有数据。
      在网上找了下原因,原来是有些编码是没有的,当然保存不了视频了,一个最简单的保存方法就是将VideoWriter的第二个参数改为-1
out = cv2.VideoWriter('out.avi',-1, 20.0, (640,480))
        
这样就可以弹出编码选择面板,让你自己选择存在的编码,每个都试了下,发现有些编码已经可以保存视频,有些还是不行,不知道为什么。不过还是挺高兴的,起码问题解决了。至于为啥有些编码没有,就不知道了,看到的朋友知道为什么的,请在下面公布下答案啊,谢谢!
     完整代码如下:
import numpy as npimport cv2cap = cv2.VideoCapture(0)out = cv2.VideoWriter('out.avi',-1, 20.0, (640,480))while(cap.isOpened()):        ret, frame = cap.read()        frame = cv2.flip(frame,0)        out.write(frame)        cv2.imshow('frame',frame)        if cv2.waitKey(1) & 0xFF == ord('q'):                breakcap.release()out.release()cv2.destroyAllWindows()

0 0
原创粉丝点击