功能性模块:(6)视频切割成图片:OpenCV版

功能性模块:(6)视频切割成图片:OpenCV版

一、模块介绍

这个其实是功能性模块(5)的反向过程,主要的目的是将视频抽成图片,这样便于逐帧分析,或者进行其他应用,这个看小伙伴们需求。

二、代码实现

def Video2Frame(videopath):
    """

    :param video_root: 视频的根目录
    :return:
    """
    video_names = os.listdir(videopath)
    for video_name in video_names:
        count = 1
        frame_path = videopath + video_name[0:-4]
        if not os.path.exists(frame_path):
            os.makedirs(frame_path)
        if video_name[-4:] == '.asf' or video_name[-4:] == '.mp4' \
                or video_name[-4:] == '.avi' or video_name[-4:] == '.mkv':
            cap = cv2.VideoCapture(videopath + '/' + video_name)
            # print cap.isOpened()
            if cap.isOpened():
                rval, frame = cap.read()
            else:
                rval = False
            while rval:
                # frame=cv2.resize(frame,(320,180))
                cv2.imwrite(frame_path + "/%05d" % count + '.jpg', frame)
                rval, frame = cap.read()
                count = count + 1
            cap.release()

这个LZ没有进行跳帧,如果需要进行抽帧,加个if。。。else的逻辑就可以啦,或者在读取的时候跳帧读就行了。

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页