[PYTHON] Implémentation de la méthode de différence inter-trame avec OpenCV

Différence de fond avec OpenCV

La méthode de différence inter-images est l'une des méthodes de détection d'objets en mouvement. C'est le résultat de la création avec Python3 + OpenCV.

Cliquez ici pour les données originales (C'est difficile à comprendre, mais c'est une vidéo qui donne l'impression d'éclabousser de l'eau sur la plage) スクリーンショット 2020-06-17 22.54.43.jpg

** Cliquez ici pour l'image du masque binarisé ** スクリーンショット 2020-06-17 22.39.08.jpg

** Ceci est une vidéo ** スクリーンショット 2020-06-17 22.40.01.jpg

** Afficher l'image de fond ** スクリーンショット 2020-06-17 22.40.50.jpg

Ensuite, c'est un exemple de programme.

movieSample.py


import cv2
import numpy as np
import time

i = 0      #Variable de comptage
th = 30    #Seuil d'image de différence

#Capture de fichier vidéo
cap = cv2.VideoCapture("/Users/.../.../.../movies/movieSample.mp4")

#Définir la première image comme image d'arrière-plan
ret, bg = cap.read()

#Conversion de l'échelle de gris
bg = cv2.cvtColor(bg, cv2.COLOR_BGR2GRAY)

while(cap.isOpened()):
    #Obtenir le cadre
    ret, frame = cap.read()

    #Conversion de l'échelle de gris
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    #Calculez la valeur absolue de la différence
    mask = cv2.absdiff(gray, bg)

    #L'image de différence est binarisée et l'image de masque(Monochrome)Calculer
    mask[mask < th] = 0
    mask[mask >= th] = 255

    #Afficher l'image du masque
    cv2.imshow("Mask", mask)
    #Image du cadre d'affichage (monochrome)
    cv2.imshow("Flame", gray)
    #Afficher l'image d'arrière-plan (monochrome)
    cv2.imshow("Background", bg)

    #Attendre(0.03sec)
    time.sleep(0.03)
    i += 1    #Augmentez le nombre de 1

    #Mise à jour de l'image d'arrière-plan (à intervalles réguliers)
    if(i > 30):
        ret, bg = cap.read()
        bg = cv2.cvtColor(bg, cv2.COLOR_BGR2GRAY)
        i = 0  #Initialisation de la variable de comptage

    #S'arrête à mi-chemin lorsque la touche x est enfoncée
    if cv2.waitKey(1) & 0xFF == ord('x'):
        break

cap.release()
cv2.destroyAllWindows()

À titre d'essai, OpenCV peut devoir être installé séparément. Veuillez essayer en fonction de l'environnement. Si vous utilisez un Mac, depuis le terminal

$ python3 -m pip install opencv-python [ENTER] Je pense que je peux y aller.

** K Igarashi ** a introduit l'installation. Installation d'OpenCV avec pip

Recommended Posts

Implémentation de la méthode de différence inter-trame avec OpenCV
Détecter le retour du chat avec OpenCV
Méthode Kernel avec Python
Faire pivoter les sprites avec OpenCV
Augmentation des données avec openCV
TopView facile avec OpenCV
Trébucher avec opencv3 de homebrew
Reconnaissance faciale avec OpenCV de Python
"Traitement Apple" avec OpenCV3 + Python3
Essayez la détection des bords avec OpenCV
Édition d'image avec python OpenCV
Capture de caméra avec Python + OpenCV
Chaîne de méthodes avec `return self`
Implémentation de word2vec avec Theano + Keras
[Python] Utilisation d'OpenCV avec Python (basique)
Implémentation de SMO avec Python + NumPy
Méthode de dessin graphique avec matplotlib
Binariser les données photo avec OpenCV
J'ai essayé d'implémenter VQE avec Blueqat
Détection des bords en temps réel avec OpenCV
Détection de visage avec Python + OpenCV
Implémentation du GAN conditionnel avec chainer
Obtenez des fonctionnalités d'image avec OpenCV
Implémentation d'un GAN efficace avec keras
Reconnaissance faciale / coupe avec OpenCV
Essayez OpenCV avec Google Colaboratory
Implémentation de SmoothGrad avec Chainer v2
Utiliser OpenCV avec Python @Mac
Reconnaissance d'image avec Keras + OpenCV
Détection de visage d'anime avec OpenCV
Interpolation automatique des images avec OpenCV et Python (méthode de marche rapide, Navier-Stokes)
Dessinez un flux optique en temps réel avec OpenCV (méthode Shi-Tomasi, méthode Lucas-Kanade)