Есть ли способ экспорта / проверки OpenCV Background Subtraction для последующего использования? - PullRequest
2 голосов
/ 09 апреля 2019

Есть ли способ экспортировать / проверить контрольную точку OpenCV Subtraction для дальнейшего использования?

У меня есть очень длинные видеофайлы для обработки, которые требуют удаления фона. Я хотел бы разрезать видео на маленькие кусочки и обрабатывать каждый кусочек отдельно. Однако при этом мне нужно было бы сгенерировать новую модель вычитания фона для каждого небольшого фрагмента видео. Это могло бы вписаться в мои полезные данные в этих очень длинных видео.

Могу ли я как-нибудь проверить этот черный ящик? Если да, как я могу запустить видео с этой экспортированной информацией контрольной точки?

Информация о версии

  • Python 3.6.4
  • OpenCV 3.4.1

(Ответы пользователей C ++ приветствуются, хотя Python предпочтительнее)

MWE

import numpy as np

import cv2

FGBG = cv2.bgsegm.createBackgroundSubtractorMOG(100, 7, 0.5, 5)
MAT = np.ones((3, 3), np.uint8)
pos_frame = 0

while pos_frame < 1000:
    cap = cv2.VideoCapture(the_file)
    cap.set(cv2.CAP_PROP_POS_FRAMES, pos_frame)
    ret, frame = cap.read()
    if ret:
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        frame = cv2.GaussianBlur(frame, (5, 5), 0)
        frame = FGBG.apply(frame, learningRate=.05)
        frame = cv2.morphologyEx(frame, cv2.MORPH_GRADIENT, MAT)
        cv2.waitKey(1)
    pos_frame += 1

# This is a placeholder for what I want to do.
cv2.somehowexportthebackgroundinfofromabove()
...