单双目视频转图片

视频转图片

视频转图片
输入文件夹路径,里面时mp4视频
输出的是每隔1秒提取到的视频帧
interval是每隔多少秒保存一张图片

import cv2
import os

img_count = 1


def save_frames(video_path, output_folder, interval):
    # 创建保存图片的文件夹
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 打开视频文件
    cap = cv2.VideoCapture(video_path)
    frame_count = 0
    global img_count

    while cap.isOpened():
        ret, frame = cap.read()

        # 判断是否成功读取帧
        if not ret:
            break

        frame_count += 1

        # 每两秒保存一帧图片
        if frame_count % (interval * cap.get(cv2.CAP_PROP_FPS)) == 0:
            img_name = f"20240524_{img_count}.jpg"
            img_path = os.path.join(output_folder, img_name)
            cv2.imwrite(img_path, frame)
            print('file saved:', img_path)
            print(img_count)
            img_count += 1

    cap.release()


# 设置输入文件夹和输出文件夹路径
input_folder = "path"
output_folder = "path"

# 遍历文件夹中的所有.dav视频文件
for filename in os.listdir(input_folder):
    if filename.endswith(".dav"):
        video_path = os.path.join(input_folder, filename)
        save_frames(video_path, output_folder, 1)

双目视频,提取单目

输入文件夹路径,里面时mp4视频
输出的是每隔1秒提取到的视频帧
img_name是视频帧名字的命名格式,自动编号

import cv2
import os

img_count = 1

def extract_left_eye_frame(video_path, output_folder):

    global img_count
    # 打开视频文件
    cap = cv2.VideoCapture(video_path)
    frame_rate = cap.get(cv2.CAP_PROP_FPS)
    frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
    half_width = frame_width // 2

    # img_count = 1
    last_saved_time = 0.0
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break

        current_time = cap.get(cv2.CAP_PROP_POS_MSEC) / 1000.0  # 当前帧的时间戳(秒)

        # 如果超过一秒钟才保存下一帧
        if current_time - last_saved_time >= 1.0: # 1.0
            # 提取左目图片
            left_eye_frame = frame[:, :half_width]
             # 提取右目图片
            # right_eye_frame = frame[:,half_width:]

            # 保存图片
            img_name = f"20240422xiaomi_{img_count}.jpg"
            img_path = os.path.join(output_folder, img_name)
            cv2.imwrite(img_path, left_eye_frame)
            print(f"Saved: {img_path}")
            img_count += 1
            last_saved_time = current_time

    cap.release()


# 设置输入文件夹和输出文件夹路径
input_folder = "path"
output_folder = "path"

# 确保输出文件夹存在
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 遍历文件夹中的所有.mp4视频文件
for filename in os.listdir(input_folder):
    if filename.endswith(".mp4"):
        print(f"Processing: {filename}")
        video_path = os.path.join(input_folder, filename)
        extract_left_eye_frame(video_path, output_folder)

相关推荐

  1. 双目视频图片

    2024-06-07 09:34:04       24 阅读
  2. 视频截屏(视频图片

    2024-06-07 09:34:04       39 阅读
  3. 双目视觉双目相机)

    2024-06-07 09:34:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 09:34:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 09:34:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 09:34:04       82 阅读
  4. Python语言-面向对象

    2024-06-07 09:34:04       91 阅读

热门阅读

  1. 常见排序算法,快排,希尔,归并,堆排

    2024-06-07 09:34:04       23 阅读
  2. Elasticsearch简介

    2024-06-07 09:34:04       27 阅读
  3. scss sass是什么?vue环境安装sass报错

    2024-06-07 09:34:04       24 阅读
  4. GUI guider 常用函数解析

    2024-06-07 09:34:04       19 阅读
  5. 洛谷 P3870 [TJOI2009] 开关 题解 线段树

    2024-06-07 09:34:04       29 阅读
  6. 【C++刷题】优选算法——前缀和

    2024-06-07 09:34:04       30 阅读
  7. 《Foundation CSS 参考手册》

    2024-06-07 09:34:04       25 阅读
  8. SpringCloud 负载均衡 spring-cloud-starter-loadbalancer

    2024-06-07 09:34:04       21 阅读
  9. 排序---快速排序的4次优化

    2024-06-07 09:34:04       26 阅读