Jak pobrać dokładną klatkę z filmu

Jak pobrać dokładną klatkę z filmu
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć,
bawię się ostatnio z openCV i zastanawia mnie jak mogę pobrać dokładna klatkę z filmu przy wykorzystaniu openCV.
Na filmiku mamy biegaczy, którzy się scigają i chcę pobrać klatkę, która przedstawia przekroczenie mety przez danego zawodnika.

Przeszukując internet znalazłem jedynie jak pobrać klatki z filmu, a ja bym chciałbym pobrać odpowiednią klatkę.
Jak ktoś zna jakieś materiały pomocne z góry dziękuje.

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6968
0

Dla ścisłości... chcesz wykryć w OpenCV moment przekroczenia mety i w tym momencie zapisać klatkę, czy chcesz zapisać screenshot z klatki o konkretnym numerze, który sam wprowadzisz do aplikacji?

RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 225
0

Jeśli szukasz czegoś gotowego to: http://zulko.github.io/moviepy/index.html , pozwala wyciąć klatke w odpowiedniej sekundzie, kod jest cały na githubie to możesz też zobaczyć jak oni to robią.

  • Rejestracja: dni
  • Ostatnio: dni
0

Chce wykryć w OpenCV moment przekroczenia mety i w tym momencie zapisać klatkę.

  • Rejestracja: dni
  • Ostatnio: dni
0

Aktualnie wczytuję film z OpenCV i zapisuję każdą klatke z niego. Chciałbym zrobić tak, że ustawiam jakąś czerwone kreche na mecie i jezeli zawodnik wbiegl na nią to zapisuję mi klatke.
Kod wyglada tak:

Kopiuj
import cv2
import numpy as np
import time



if __name__ == '__main__':
    vidcap = cv2.VideoCapture('video.mkv')
    success,image = vidcap.read()
    count = 0
    success = True
    while success:
        cv2.imwrite("frames/frame%d.jpg" % count, image)    
        success,image = vidcap.read()
        print('Odczyt klatki: ', success)
        count += 1
  • Rejestracja: dni
  • Ostatnio: dni
0

Jeśli chcesz operować na statycznym ujęciu linii mety to można by, dla każdej klatki odczytywać wartości pikseli na których znajduję się ta linia i w momencie gdy część z nich zmieni swoja wartość o jakiś tam threshold (np. znajdzie się tam but/noga/koszulka biegacza) potraktować to jako przekroczenie mety i zapisać klatkę. Oczywiście poprawność tego rozwiązania zależy od wielu czynników - statyczności kamery i tła albo chociaż perspektywy ujęcia.
Jak ujęcie jest dynamiczne (np. filmowane z ręki) to sprawa się komplikuje i tu chyba najskuteczniej byłoby użyć jakiegoś algorytmu ML. Np. segmentacja obrazu w czasie rzeczywistym + detekcja kolizji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.