视频转图片(opencv+python)
video2imgs 函数
视频转图片操作
pick_imgs 函数
对视频帧筛选,隔帧取样操作
注意:两个代码是独立运行的,pick_imgs 的操作其实是可以合并在 video2imgs 函数里面的,这里的 pick_imgs 函数有点冗余了
import cv2
import numpy as np
import glob
import shutil
import osdef video2imgs(vd_dir,vd_idx):video_dir = vd_dircap = cv2.VideoCapture(video_dir)assert cap.isOpened(),"视频读取失败!"success = Trueframe_count = 0video_index = vd_idx while(success):success, frame = cap.read()if success:if frame_count % 1 == 0:print("读取一帧......")'''视频帧保存''''''video_index是视频的id,frame_count帧的id,frame是一帧图像'''cv2.imwrite("E:/DL/yolov5/zhi_video/frames/vd%d_%08d.jpg" % (video_index,frame_count), frame)frame_count = frame_count + 1else:print("结束了")cap.release()def pick_imgs(gap):k = 0for img_dir in glob.glob("E:/DL/yolov5/litchi_video/images/"+"*.jpg"):img_save_dir = os.path.join("E:/DL/yolov5/litchi_video",'imgs')k = k+1if k == gap: k = 0print("---分隔帧采样---")if os.path.exists(img_save_dir):shutil.copy(img_dir, img_save_dir) if __name__ == "__main__":'''第一个参数是视频路径,第二个参数是视频的id(用于每一帧图片的命名)'''video2imgs("E:/DL/yolov5/zhi_video/DJI_0124.MOV",2) '''这是对视频帧做隔帧采样,2是指隔1帧取一张''' #pick_imgs(2)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
