[PYTHON] Implementierte Inter-Frame-Differenzmethode mit OpenCV

Hintergrundunterschied mit OpenCV

Die Inter-Frame-Differenzmethode ist eine der Methoden zum Erkennen von sich bewegenden Objekten. Dies ist das Ergebnis der Erstellung mit Python3 + OpenCV.

Klicken Sie hier für die Originaldaten (Es ist schwer zu verstehen, aber es ist ein Video, das sich anfühlt, als würde man Wasser auf den Strand spritzen.) スクリーンショット 2020-06-17 22.54.43.jpg

** Klicken Sie hier für das binärisierte Maskenbild ** スクリーンショット 2020-06-17 22.39.08.jpg

** Dies ist ein Video ** スクリーンショット 2020-06-17 22.40.01.jpg

** Hintergrundbild anzeigen ** スクリーンショット 2020-06-17 22.40.50.jpg

Dann ist es ein Beispielprogramm.

movieSample.py


import cv2
import numpy as np
import time

i = 0      #Zählvariable
th = 30    #Differenzbildschwelle

#Video-Dateierfassung
cap = cv2.VideoCapture("/Users/.../.../.../movies/movieSample.mp4")

#Stellen Sie das erste Bild als Hintergrundbild ein
ret, bg = cap.read()

#Graustufenumwandlung
bg = cv2.cvtColor(bg, cv2.COLOR_BGR2GRAY)

while(cap.isOpened()):
    #Holen Sie sich Rahmen
    ret, frame = cap.read()

    #Graustufenumwandlung
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    #Berechnen Sie den absoluten Wert der Differenz
    mask = cv2.absdiff(gray, bg)

    #Das Differenzbild wird binärisiert und das Maskenbild(Einfarbig)Berechnung
    mask[mask < th] = 0
    mask[mask >= th] = 255

    #Maskenbild anzeigen
    cv2.imshow("Mask", mask)
    #Rahmenbild anzeigen (monochrom)
    cv2.imshow("Flame", gray)
    #Hintergrundbild anzeigen (monochrom)
    cv2.imshow("Background", bg)

    #Warten(0.03sec)
    time.sleep(0.03)
    i += 1    #Erhöhen Sie die Anzahl um 1

    #Aktualisierung des Hintergrundbildes (in regelmäßigen Abständen)
    if(i > 30):
        ret, bg = cap.read()
        bg = cv2.cvtColor(bg, cv2.COLOR_BGR2GRAY)
        i = 0  #Initialisierung der Zählvariablen

    #Stoppt auf halbem Weg, wenn die x-Taste gedrückt wird
    if cv2.waitKey(1) & 0xFF == ord('x'):
        break

cap.release()
cv2.destroyAllWindows()

Als Test muss OpenCV möglicherweise separat installiert werden. Bitte versuchen Sie es entsprechend der Umgebung. Wenn Sie einen Mac verwenden, über das Terminal

$ python3 -m pip install opencv-python [ENTER] Ich denke, ich kann dorthin gehen.

** K Igarashi ** hat die Installation eingeführt. OpenCV mit pip installieren

Recommended Posts

Implementierte Inter-Frame-Differenzmethode mit OpenCV
Katze zurück mit OpenCV erkennen
Kernel-Methode mit Python
Sprites mit OpenCV drehen
Datenerweiterung mit openCV
Einfache TopView mit OpenCV
Stolpern Sie mit opencv3 von Homebrew
Gesichtserkennung mit OpenCV von Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
Versuchen Sie die Kantenerkennung mit OpenCV
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
Methodenkette mit `return self`
Word2vec mit Theano + Keras implementiert
[Python] Verwenden von OpenCV mit Python (Basic)
SMO mit Python + NumPy implementiert
Diagrammzeichnungsmethode mit matplotlib
Binarisieren Sie Fotodaten mit OpenCV
Ich habe versucht, VQE mit Blueqat zu implementieren
Echtzeit-Kantenerkennung mit OpenCV
Gesichtserkennung mit Python + OpenCV
Bedingte GAN mit Chainer implementiert
Holen Sie sich Bildfunktionen mit OpenCV
Effizientes GAN mit Keras implementiert
Gesichtserkennung / Schneiden mit OpenCV
Probieren Sie OpenCV mit Google Colaboratory aus
SmoothGrad mit Chainer v2 implementiert
Verwenden von OpenCV mit Python @Mac
Bilderkennung mit Keras + OpenCV
Anime-Gesichtserkennung mit OpenCV
Automatische Bildinterpolation mit OpenCV und Python (Fast Marching Method, Navier-Stokes)
Zeichnen Sie den optischen Fluss in Echtzeit mit OpenCV (Shi-Tomasi-Methode, Lucas-Kanade-Methode)