OpenCV — извлечение непрозрачных логотипов телеканалов

#python #opencv

#питон #opencv

Вопрос:

моя цель — выделить регион на видео о все еще непрозрачных логотипах телеканалов.

Я начал играть с этим кодом на Python, который создает обрамленный средний результат

 import cv2
import numpy as np
c = cv2.VideoCapture('test.mp4')
_,f = c.read()

avg1 = np.float32(f)
avg2 = np.float32(f)

while(1):
    _,f = c.read()
    cv2.accumulateWeighted(f,avg1,0.1)
    cv2.accumulateWeighted(f,avg2,0.01)
    res2 = cv2.convertScaleAbs(avg2)
    cv2.imshow('img',f)
    cv2.imshow('avg2',res2)

cv2.destroyAllWindows()
c.release()
 

Вот как это выглядит после обработки видео:

введите описание изображения здесь

После усреднения по времени большинство объектов в кадре становятся размытыми, за исключением логотипа и, возможно, некоторых других объектов, не зависящих от времени.

Мой вопрос таков: как я могу определить «самую» статичную область, чтобы вырезать и сохранить как изображения из видео?

Комментарии:

1. Вы можете рассчитать дисперсию или стандартное отклонение для каждой позиции пикселя с течением времени и выбрать область, в которой это значение минимально.

2. Пожалуйста, какой-нибудь пример кода?