6、Python视频和图片互转

视频转图片 图片转视频

import cv2
from cv2 import VideoWriter, VideoWriter_fourcc, imread, resize
import os
from PIL import Imagedef Pic2Video():imgPath = "./video/img/"  # 读取图片路径videoPath = "./video/outvideo/out6.mp4"  # 保存视频名称,路径默认为当前文件夹下images = os.listdir(imgPath)# 如果视频出现乱帧的情况,采用如下函数可以改正images.sort()  # noqa: E999fps = 5  # 每秒25帧数# VideoWriter_fourcc为视频编解码器 ('I', '4', '2', '0') —>(.avi) 、('P', 'I', 'M', 'I')—>(.avi)、('X', 'V', 'I', 'D')—>(.avi)、('T', 'H', 'E', 'O')—>.ogv、('F', 'L', 'V', '1')—>.flv、('m', 'p', '4', 'v')—>.mp4fourcc = VideoWriter_fourcc(*'mp4v')# fourcc = cv2.VideoWriter_fourcc(*'avc1')h, w, _ = cv2.imread(os.path.join(imgPath, images[1])).shapevideoWriter = cv2.VideoWriter(videoPath, fourcc, fps, (w, h))for im_name in range(len(images)):frame = cv2.imread(imgPath + images[im_name])  # 这里的路径只能是英文路径# frame = cv2.imdecode(np.fromfile((imgPath + images[im_name]), dtype=np.uint8), 1)  # 此句话的路径可以为中文路径print(im_name)videoWriter.write(frame)print("图片转视频结束!")videoWriter.release()cv2.destroyAllWindows()def Video2Pic():videoPath = "./video/input/12s.mp4"  # 读取视频路径imgPath = "./video/outimg2/"  # 保存图片路径cap = cv2.VideoCapture(videoPath)fps = cap.get(cv2.CAP_PROP_FPS)  # 获取帧率width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  # 获取宽度height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))  # 获取高度suc = cap.isOpened()  # 是否成功打开frame_count = 0while suc:frame_count += 1suc, frame = cap.read()# cv2.imwrite(imgPath + str(frame_count).zfill(4), frame)cv2.imwrite(imgPath + "%d.png" % frame_count, frame)cv2.waitKey(1)cap.release()print("视频转图片结束!")if __name__ == "__main__":# Video2Pic()  # 视频转图像Pic2Video() #图像转视频


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部