计算机视觉 OpenCV (2)
图
今天分享的是如何通过 OpenCV 读写视频流。
读取视频流
import cv2cap = cv2.VideoCapture(0)这里 VideoCapture 方法参数 0 表示读取默认摄像头的视频流,假如使用 0 没有成功可尝试给 -1,当设施有两个摄像头可以通过 1 来得到第二个摄像头的视频流。
while(True): ret, frame = cap.read() cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): breakcap 的 read 读取视频流方法会返回来两个参数, ret 表示能否成功获取视频流,而 frame 这是每一帧的画面,我们通过 imshow 方法将捕获画面显示出来,最后通过判断客户能否按下 q 键来执行退出操作。
cap.release()cv2.destroyAllWindows()退出后我们还有少量重要的收尾工作就是需要释放掉 cap 对象。
读取视频流完整代码
import cv2# -1 1cap = cv2.VideoCapture(0)while(True): ret, frame = cap.read() cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): breakcap.release()cv2.destroyAllWindows()我们也可以在输出每一帧画面前,对画面进行解决,这里通过 cvtColor 读取 frame 视频流根据指定第二个参数 cv2.COLOR_BGR2GRAY 将视频流数据转换为灰度图片
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)将图片解决为灰度图,使用了 cvtColor 方法来实现。而后通过 cap 的 isOpened 方法来判断能否成功捕获到图片。
while(cap.isOpened()): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame',gray) if cv2.waitKey(1) & 0xFF == ord('q'): breakcap.release()cv2.destroyAllWindows()通过 cap 实例也可以获取少量读取视频流的设置,下面可以输出读取视频流的视频的尺寸,也就是掌管
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))1280.0720.0保存图像
VideoWriter_fourcc 用来设置需要保存视频的格,查看可以一个一个字符输入,可以可以以 * 开始输入这个字符串。
fourcc = cv2.VideoWriter_fourcc('X','V','I','D')fourcc = cv2.VideoWriter_fourcc(*'XVID')使用 VideoWriter 读取视频流,第一个参数为要写入的文件,第二个参数为输出的视频的格式,
cap = cv2.VideoCapture(0)fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter('output.avi',fourcc,20.0,(1280,720))while(cap.isOpened()): ret, frame = cap.read() if ret == True: # print(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) out.write(frame) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame',gray) if cv2.waitKey(1) & 0xFF == ord('q'): break else: breakcap.release()out.release()cv2.destroyAllWindows()说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 计算机视觉 OpenCV (2)
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 计算机视觉 OpenCV (2)