江苏省住房城乡建设厅网站,电商网站开发主要技术问题,wordpress图床首页无缩略图,wordpress发布的文章如何不显示目录
前言
通过路径获取视频内容
获取视频内容
检查是否正确打开 循环播放
完整代码
从摄像头读取视频数据
获取视频设备
其他与直接读取视频一致
完整实例
录制视频
用于创建视频编解码器的四字符码#xff08;FourCC#xff09;
cv2.VideoWriter()
将视频帧…目录
前言
通过路径获取视频内容
获取视频内容
检查是否正确打开 循环播放
完整代码
从摄像头读取视频数据
获取视频设备
其他与直接读取视频一致
完整实例
录制视频
用于创建视频编解码器的四字符码FourCC
cv2.VideoWriter()
将视频帧逐帧写入视频文件
完整示例 前言 - 视频是由图片组成的, 视频的每一帧就是一幅图片, 一般是30帧, 表示一秒显示30张图片.- cv2.VideoCapture可以捕获摄像头, 用数字来表示不同的设备, 比如0, 1- 如果是视频文件, 可以直接指定路径即可. 通过路径获取视频内容
获取视频内容 vc cv2.VideoCapture(path) 检查是否正确打开 vc.isOpened() # 可以读到内容返回True 循环播放 播放视频就是不停的换图像帧即循环调用 vc.read() 和 cv2.imshow() 完整代码
import cv2
# 打开视频文件
def open_video(path):vc cv2.VideoCapture(path)ret vc.isOpened() # 可以读到内容返回True# 检查是否正确打开if ret:print(视频打开成功)else:print(视频打开失败)return -1print(f开始播放视频: {path.split(/).pop()}按esc键退出)# 循环读帧播放视频while ret:# 可以读到内容ret返回Trueret, frame vc.read()# 读到最后frame就是空if frame is None:print(视频播放完毕)breakif ret:cv2.imshow({}.format(path).split(/).pop(), frame)# 0xFF 27表示按esc退出键会退出if cv2.waitKey(33) 0xFF 27:break# 释放视频对象vc.release()# 关闭窗口cv2.destroyAllWindows()open_video(videos/1.mp4)
从摄像头读取视频数据
获取视频设备 cap cv2.VideoCapture(0) 其他与直接读取视频一致
完整实例
import cv2# 从摄像头一直读取数据
def camera():# 获取视频设备cap cv2.VideoCapture(0)print(获取视频设备成功)ret cap.isOpened()# 创建窗口cv2.namedWindow(video, cv2.WINDOW_NORMAL)cv2.resizeWindow(video, 640, 480)print(成功创建窗口)print(开始播放来自摄像头的视频按esc键退出)while ret:# 从摄像头读取视频ret, frame cap.read()# 将视频帧放在窗口中显示cv2.imshow(video, frame)# 等待键盘事件, 按esc键会退出if cv2.waitKey(33) 0xFF 27:break# 释放摄像头cap.release()print(摄像头已关闭)# 关闭窗口cv2.destroyAllWindows()
camera()
录制视频 - VideoWriter : 参数一为输出文件, 参数二为多媒体文件格式(VideoWriter_fourcc),
参数三为帧率, 参数四为分辨率.
- write 编码并写入缓存
- release 缓存内容写入磁盘, 并释放资源 用于创建视频编解码器的四字符码FourCC fourcc cv2.VideoWriter_fourcc(*mp4v) cv2.VideoWriter() vm cv2.VideoWriter(output.mp4, fourcc, 20, (640, 480)) output.mp4 是输出视频文件的名称fourcc 是所选的视频编码器20 是帧率(640, 480) 是视频的分辨率。 将视频帧逐帧写入视频文件 vw.write(frame) 完整示例
import cv2# 录制视频
def record_video():# 获取视频设备cap cv2.VideoCapture(1)print(获取视频设备成功)# *mp4v就是解包操作 等同于 m, p, 4, vfourcc cv2.VideoWriter_fourcc(*mp4v) # 用于创建视频编解码器的四字符码FourCC。# (640, 480)表示摄像头拍视频, 这个大小搞错了也不行,主要是这个分辨率.vw cv2.VideoWriter(output.mp4, fourcc, 20, (640, 480))# output.mp4 是输出视频文件的名称fourcc 是所选的视频编码器20 是帧率(640, 480) 是视频的分辨率。print(开始录制来自摄像头的视频按esc键退出)# 循环存帧录制视频while cap.isOpened():ret, frame cap.read()if not ret:print(没有接收到图像)breakvw.write(frame) # 将视频帧逐帧写入视频文件。cv2.imshow(frame, frame) # 显示录制的帧if cv2.waitKey(33) 0xFF 27:break# 释放摄像头cap.release()print(摄像头已关闭)record_video()