python+opencv 将.mp4视频每一帧转为jpg图片

主要功能:

将视频中的每一帧转化为图片。

 

1、可以设置将视频全部转化为图片

is_all_frame = True

2、可以设置只取视频的部分帧,如取3-40帧

is_all_frame = False #是否取所有的帧
sta_frame = 3 #开始帧
end_frame = 40 #结束帧

3、可以设置每隔几帧取一次图片

time_interval = 1 # 为1 则连续取
time_interval = 3 # 为3 则每隔3帧保存一次图片

设置好视频路径,和保存的路径即可正常运行

 

from cv2 import VideoCapture
from cv2 import imwrite

# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image, addr, num):
    address = addr + str(num) + '.jpg'
    imwrite(address, image)

if __name__ == '__main__':

    video_path = "./output/1.mp4" #视频路径
    out_path = "./output/img_" #保存图片路径+名字

    is_all_frame = False #是否取所有的帧
    sta_frame = 1 #开始帧
    end_frame = 40 #结束帧

    ######
    time_interval = 1 #时间间隔

    # 读取视频文件
    videoCapture = VideoCapture(video_path)

    # 读帧
    success, frame = videoCapture.read()
    print(success)

    i = 0
    j = 0
    if is_all_frame:
        time_interval = 1

    while success:
        i = i + 1
        if (i % time_interval == 0):
            if is_all_frame == False:
                if i >= sta_frame and i <= end_frame:
                    j = j + 1
                    print('save frame:', i)
                    save_image(frame, out_path, j)
                elif i > end_frame:
                    break
            else:
                j = j + 1
                print('save frame:', i)
                save_image(frame, out_path, j)

        success, frame = videoCapture.read()

 

  • 13
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要通过PythonOpenCV快速拼接出完整的长截屏图片,我们可以按照以下步骤进行: 首先,使用Python中的手机录屏工具(如Android Debug Bridge,简称ADB)来录制手机屏幕的视频。首先需要在电脑上安装并配置好ADB工具。 其次,使用Python中的OpenCV库来读取录制好的视频文件。可以使用OpenCV的VideoCapture函数来从视频文件中提取每一帧图像。 然后,根据视频数和分辨率,确定长截屏图片的尺寸。也就是将所有的图像按序拼接为一个完整的长截屏图片。 接下来,创建一个空白的长截屏图片,使用OpenCV的imwrite函数将第一帧图像保存到长截屏图片中。 对于其余的图像,可以使用OpenCV的addWeighted函数将它们逐一拼接到长截屏图片的尾部。根据移动设备的屏幕方向和滑动方向,可以选择水平或垂直拼接。 最后,保存生成的长截屏图片。 需要注意的是,在拼接过程中,可能会出现图像大小不匹配的情况。可以使用OpenCV的resize函数来调整每个图像的大小,使其与长截屏图片的大小一致。 另外,在实际运行过程中,可能还需要根据手机录制视频率和间隔等参数来调整拼接速度和图片质量。 综上所述,通过PythonOpenCV,我们可以实现快速拼接出完整的长截屏图片。这样就可以方便地将手机屏幕内容保存为单个长图,便于查看和分享。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值