Calendrier de l'Avent Fujitsu Systems Web Technology 2019 Publié le 16e jour. Le contenu de l'article est l'opinion personnelle, et le contenu de l'écriture est la responsabilité de l'auteur. Peu importe à quelle organisation vous appartenez.
Cette fois, le 16e jour, je suis familier avec le fait que je n'ai jamais effacé la recherche d'erreur de Saiseria par moi-même.
** Un programme qui peut faire la différence entre deux images et afficher la différence d'une manière facile à comprendre **
Je voudrais écrire sur la façon de faire
(Il n'y a aucune garantie, mais si vous pouvez utiliser python et diverses bibliothèques, cela fonctionnera normalement, alors jetez un coup d'œil.)
(La méthode d'installation détaillée est '[installation de jupyter anaconda navigator](https://www.google.com/search?q=anaconda+navigator+jupyter+%E3%82%A4%E3%83%B3%E3%82%B9 % E3% 83% 88% E3% 83% BC% E3% 83% AB) 'Je pense que diverses choses vont sortir.)
Maintenant, voici le contenu réel de la source.
Il y a trois parties principales
Et la souris
import cv2, matplotlib
import numpy as np
from IPython.display import Image, display_png
#Image originale 1
img_01 = "sample1.png "
#Image originale 2
img_02 = "sample2.png "
#Veuillez saisir le nom que vous souhaitez donner à l'image de sortie
outImg = "output.png "
#Lire l'image originale 1 en couleur
img_src01 = cv2.imread(img_01, 1)
#Lire l'image originale 2 en couleur
img_src02 = cv2.imread(img_02, 1)
#Distribution normale mixte(Gaussian Mixture)Cela semble être un algorithme de division de zone de premier plan / arrière-plan basé sur.
bg = cv2.bgsegm.createBackgroundSubtractorMOG()
#Générer une image de masque
mask = bg.apply(img_src01)
mask = bg.apply(img_src02)
#Image du masque de sortie
cv2.imwrite("output/machigai_mask.png ", mask)
print("Image originale 1")
display_png(Image(img_01))
print("Image originale 2")
display_png(Image(img_02))
print("Image de masque")
display_png(Image("output/machigai_mask.png "))
Le résultat de sortie ici est le suivant.
mask_img = cv2.imread("output/machigai_mask.png ", 1)
#Remplacez la partie blanche de l'image par du rouge
red = [240, 20, 20]
white = [255, 255, 255]
mask_img[np.where((mask_img == white).all(axis=2))] = red
# BGR to RGB
mask_img = cv2.cvtColor(mask_img, cv2.COLOR_BGR2RGB)
#Enregistrez le résultat.
cv2.imwrite("output/color_mask_img.png ", mask_img)
color_mask_img = cv2.imread("output/color_mask_img.png ", 1)
display_png(Image("output/color_mask_img.png "))
Le résultat de sortie ici est le suivant.
Enfin, si vous pouvez le faire, ce sera terminé.
# src1 =Image originale 1, src2=Image de masque, alpha(beta) =Il semble bon de régler à un rapport d'environ 1 au total, gamma=Ça faisait du bien quand c'était 0
diff_image = cv2.addWeighted(src1=img_src01,alpha=0.3,src2=color_mask_img,beta=0.7,gamma=0)
cv2.imwrite(outImg, diff_image)
display_png(Image(outImg))
Oui c'est fait
Pour cette raison, j'ai cherché des erreurs et je les ai faites. Tout d'abord, essayez-le vous-même (il y a 6 erreurs)
Avez-vous trouvé l'erreur?
Ensuite, jetons un coup d'œil aux résultats de la ~~ machine à casser les œufs entièrement automatique ~~ résolus par le chercheur d'erreurs.
c'est ici
Comment c'est? C'est un excellent taux de réponse correcte.
Cependant, la précision de détection de ** que la perruque de l'enseignant a été changée en pastèque ** n'est pas très bonne.
En premier lieu, cette méthode de différence de fond est Il s'agit d'une méthode pour détecter des objets en mouvement sur une image en mouvement.
en bref
Avec une caméra à point fixe ** Ah, les gens sont passés par là ** C'est une façon de juger quelque chose comme
Il existe deux problèmes majeurs lors de l'utilisation de cette méthode de différence de fond pour trouver des erreurs.
Donc, si vous essayez de créer quelque chose qui puisse être utilisé à des fins générales,
J'ai l'impression de devoir créer un tel logiciel ()
Faisons de notre mieux pour créer un tel logiciel la prochaine fois (yeux blancs)
Recommended Posts