OpenCV-Python学习笔记(一)
OpenCV-Python学习笔记(一)
使用工具Python3.6.8
使用numpy;opencv;matplotlib
1. OpenCV的图像读取显示及保存
1 | 如果用的是64位系统,需将k=cv2.waitKey(0)改k=cv2.waitKey(0)&0xff |
1 | import cv2 |
1 | import numpy as np |
output_1:
output_2:
2. OpenCV视频操作
- 学习阅读视频,显示视频和保存视频。
- 学习从摄像头捕捉并显示它。
- 您将学习这些功能:
cv2.VideoCapture()
,cv2.VideoWriter()
1、用摄像头捕获视频
cv2.VideoCapture() :0为默认计算机默认摄像头,1可以更换来源;
1 | import cv2 |
cap.read()
返回一个布尔True/False
。如果帧被正确读取,则为True
。所以你可以通过检查这个返回值来检查视频的结束。
有时候,cap
可能没有初始化捕获。在这种情况下,这段代码显示错误。你可以通过cap.isOpened()
方法检查它是否被初始化。如果它是True
,好的。否则使用cap.open()
打开它。
您还可以使用cap.get(propId)
方法访问此视频的某些功能,其中propId
是一个从0到18的数字。每个数字表示视频的一个属性(如果该视频适用于该视频),详细信息可以在这里可以看到:属性标识符。其中一些值可以使用cap.set(propId,value)
进行修改。 值是你想要的新值。
例如,其中一些值可以使用cap.set(propId,value)
来修改,例如cap.get(3)
和cap.get(4)
来查看每一帧的宽和高,默认是640x480
。我们可以使用ret=cap.set(3,320)
和ret = cap.set(4,240)
来把宽和高改成320x240
。
2、从文件中播放视频
把设备索引号改成文件名即可。在播放每一帧时,使用cv2.waitKey()
适当持续时间,如果它太少,视频会非常快,如果它太高,视频会很慢(那么,这是如何以慢动作显示视频)。正常情况下,25ms
即可。
1 | import cv2 |
代码中尝试修改视频流的一些属性:
3、保存视频
所以我们拍摄一个视频,逐帧处理,我们要保存视频。对于图像来说,这非常简单,只是使用cv2.imwrite()
。 但是视频需要更多的工作。
创建一个VideoWrite
的对象,确定输出文件名,指定FourCC
编码,播放频率和帧的大小,最后是isColor
标签True
为彩色。 FourCC
是一个4字节码,用来确定视频的编码格式。
- 1、In Fedora : DIVX , XVID , MJPG , X264 , WMV1 , WMV2 XVID是最好的,MJPG是高尺寸视频,X264得到小尺寸视频
- 2、In Windows : DIVX
- 3、In OSX :不知道用什么好
设置FourCC格式时,原文里采用了·cv2.VideoWriter_fourcc()·这个函数,若运行程序的时候显示这个函数不存在,可以改用了·cv2.cv.CV_FOURCC·这个函数。
1 | import cv2 |
原文作者: 贺同学
原文链接: http://clarkhedi.github.io/2019/04/12/opencv-python-xue-xi-bi-ji-yi/
版权声明: 转载请注明出处(必须保留原文作者署名原文链接)