Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 2, 2025 01:11:29

rownong
Зарегистрирован: 2025-02-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Есть ли решение на Python, чтобы выбирать уникальные кадры из видео?

Здравствуйте.
Нужно получать уникальные кадры (скриншоты) из видео.
Есть ли какое-то решение на Python, чтобы выбирать из видео кадры, которые, например, больше чем на 50% отличаются друг от друга?

Офлайн

#2 Март 5, 2025 06:14:16

seedstacos
Зарегистрирован: 2025-03-05
Сообщения: 1
Репутация: +  -1  -
Профиль   Отправить e-mail  

Есть ли решение на Python, чтобы выбирать уникальные кадры из видео?

Yes! Use OpenCV and SSIM to extract unique frames from a video based on a similarity threshold.

 import cv2
import numpy as np
from skimage.metrics import structural_similarity as ssim
def extract_unique_frames(video_path, output_folder, threshold=0.5):
    cap = cv2.VideoCapture(video_path)
    prev_frame = None
    unique_count = 0
    while True:
        ret, frame = cap.read()
        if not ret:
            break
        gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        if prev_frame is None or ssim(prev_frame, gray_frame) < threshold:
            cv2.imwrite(f"{output_folder}/frame_{unique_count:04d}.png", frame)
            unique_count += 1
            prev_frame = gray_frame
    cap.release()
    print(f"Extracted {unique_count} unique frames.")
# Example usage
extract_unique_frames("input.mp4", "output_frames", threshold=0.5)
This extracts frames that differ by dordle more than 50%.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version