[PYTHON] Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst

Adventskalender für Fujitsu Systems Web Technology 2019 Veröffentlicht am 16. Tag. Der Inhalt des Artikels ist die persönliche Meinung, und der Inhalt des Schreibens liegt in der eigenen Verantwortung des Autors. Es spielt keine Rolle, zu welcher Organisation Sie gehören.

Einführung

Diesmal am 16. Tag bin ich mit der Tatsache vertraut, dass ich die Fehlersuche nach Saiseria nie alleine abgeschlossen habe.

** Ein Programm, das den Unterschied zwischen zwei Bildern erkennen und auf leicht verständliche Weise anzeigen kann **

Ich würde gerne darüber schreiben, wie man macht

Grobes Bilddiagramm

スクリーンショット 2019-12-13 21.04.06.png スクリーンショット 2019-12-13 21.04.16.png

Montageumgebung

Vorbereitungen

(Es gibt keine Garantie, aber wenn Sie Python und verschiedene Bibliotheken verwenden können, funktioniert es normal. Schauen Sie also einfach mal rein.)

(Die detaillierte Installationsmethode lautet '[jupyter-Installation des Anaconda-Navigators](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) 'Ich denke, dass verschiedene Dinge herauskommen werden.)

Quellenkommentar

Hier ist der eigentliche Inhalt der Quelle.

Es gibt drei Hauptteile

Und die Maus

Import- oder Variableneinstellung


import cv2, matplotlib
import numpy as np
from IPython.display import Image, display_png

#Originalbild 1
img_01 = "sample1.png "
#Originalbild 2
img_02 = "sample2.png "
#Bitte geben Sie den Namen ein, den Sie dem Ausgabebild geben möchten
outImg = "output.png "

Erstellen Sie ein Maskenbild des Unterschieds


#Lesen Sie das Originalbild 1 in Farbe
img_src01 = cv2.imread(img_01, 1)
 
#Lesen Sie das Originalbild 2 in Farbe
img_src02 = cv2.imread(img_02, 1)
 
#Gemischte Normalverteilung(Gaussian Mixture)Es scheint sich um einen Algorithmus zur Aufteilung des Vordergrund- / Hintergrundbereichs zu handeln.
bg = cv2.bgsegm.createBackgroundSubtractorMOG()
 
#Maskenbild erzeugen
mask = bg.apply(img_src01)
mask = bg.apply(img_src02)

#Ausgabemaskenbild
cv2.imwrite("output/machigai_mask.png ", mask)

print("Originalbild 1")
display_png(Image(img_01))
print("Originalbild 2")
display_png(Image(img_02))
print("Maskenbild")
display_png(Image("output/machigai_mask.png "))

Das Ausgabeergebnis hier ist wie folgt. スクリーンショット 2019-12-13 22.21.20.png

Bringen Sie Farbe auf den Maskenteil des Maskenbildes


mask_img = cv2.imread("output/machigai_mask.png ", 1)

#Ersetzen Sie den weißen Teil des Bildes durch Rot
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)

#Speichern Sie das Ergebnis.
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 "))

Das Ausgabeergebnis hier ist wie folgt. スクリーンショット 2019-12-14 0.05.36.png

Ändern Sie die Transparenz des Maskenbildes und kombinieren Sie

Wenn Sie dies am Ende tun können, wird es abgeschlossen.


# src1 =Originalbild 1, src2=Maskenbild, Alpha(beta) =Es scheint gut zu sein, es auf ein Verhältnis von insgesamt 1, Gamma, einzustellen=Es fühlte sich gut an, als es 0 war
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))

Ja, es ist geschafft スクリーンショット 2019-12-14 0.11.25.png

Ich habe es mit einem Bild versucht, das wie ein Fehler aussieht

Aus diesem Grund habe ich nach Fehlern gesucht und sie gemacht. Bitte versuchen Sie es zuerst selbst (es gibt 6 Fehler)

machigai_1_2.png

Hast du den Fehler gefunden?

Schauen wir uns als nächstes die Ergebnisse der vollautomatischen Eierbrechmaschine an, die vom Fehlersucher gelöst wurde.

es ist hier diff_image (1).png

Wie ist das? Es ist eine großartige richtige Antwortrate.

Die Erkennungsgenauigkeit von **, dass die Perücke des Lehrers in Wassermelone ** geändert wurde, ist jedoch nicht sehr gut.

Informationen zur Hintergrunddifferenzmethode

In erster Linie ist diese Hintergrunddifferenzmethode Dies ist eine Methode zum Erkennen von sich bewegenden Objekten auf einem bewegten Bild.

Zusamenfassend

Mit einer Festkommakamera ** Ah, Leute kamen vorbei ** Es ist eine Möglichkeit, so etwas zu beurteilen

Es gibt zwei Hauptprobleme bei der Verwendung dieser Hintergrunddifferenzmethode zum Auffinden von Fehlern.

Wenn Sie also versuchen, etwas herzustellen, das für allgemeine Zwecke verwendet werden kann,

Ich habe das Gefühl, ich muss solche Software machen ()

Schließlich

Lassen Sie uns unser Bestes tun, um diese Software das nächste Mal zu erstellen (weiße Augen)

Referenz

Recommended Posts

Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst
Ich habe versucht, ein Programm zu erstellen, um die Fehlersuche von Saiseriya zu lösen (Hinweis)
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe versucht, "ein Programm, das doppelte Anweisungen in Python entfernt"
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Ich habe ein Ausgabeprogramm für Primzahlentabellen in verschiedenen Sprachen erstellt
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe den Befehl gegeben, einen farbenfrohen Kalender im Terminal anzuzeigen
Ich habe in Python ein Programm erstellt, das die 1-Minuten-Daten von FX auf eine beliebige Zeit (1 Stunde usw.) ändert.
[Python] Ein Programm, das die Partitur rundet
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann
Ich habe eine Bibliothek konoha gemacht, die den Tokenizer auf ein schönes Gefühl umstellt
[IOS] Ich habe ein Widget erstellt, das den Trend von Qiita in Pythonista3 anzeigt. [Python]
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht
Ein Memo, das ich schnell in Python geschrieben habe
Ein Programm, das doppelte Anweisungen in Python entfernt
Programm zur Suche nach demselben Bild
Ein Shell-Programm, das eine Fibonacci-Sequenz anzeigt
Ich habe einen LINE BOT erstellt, der mithilfe der Flickr-API ein Bild von Reis-Terroristen zurückgibt
[Anfänger] Was passiert, wenn ich ein Programm schreibe, das in Python auf PHP läuft?
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Ich habe ein PyPI-Modul geschrieben, das den Parameterstil in Pythons sqlite3-Modul erweitert
[Python] Ein Programm, das die Differenz zwischen diagonalen Gesamtwerten berechnet
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ich habe ein Programm erstellt, um Wörter im Fenster nachzuschlagen (vorherige Entwicklung)
Ich habe in Python ein Programm erstellt, das FX-CSV-Daten liest und eine große Anzahl von Diagrammbildern erstellt
Ich habe eine Twitter-App erstellt, die die Zeichen der Vorverbindung mit Heroku entschlüsselt (Fehler).
[Python] Ein Programm, das die Anzahl der Täler zählt
〇✕ Ich habe ein Spiel gemacht
[Python] Ein Programm, das die kürzeste Anzahl von Schritten in einem Spiel findet, das Wolken überquert
Ich habe eine VM erstellt, auf der OpenCV für Python ausgeführt wird
Ich habe ein Skript erstellt, um ein Snippet in README.md einzufügen
Shell-Programm, das in Vielfachen von 3 aho wird
Ich habe eine Demo erstellt, mit der das in Tensorflows Mnist-Tutorial trainierte Modell die handgeschriebenen Zahlen auf der Leinwand unterscheiden kann.
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Ich habe einen Befehl zum Markieren des Tabellenclips gegeben
[Python / C] Ich habe versucht, ein Gerät zu erstellen, das den Bildschirm eines PCs drahtlos aus der Ferne scrollt.
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert (Google Kalender Edition).
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
Ein Programm, das die für iOS-App-Symbole in Python erforderliche Bildgröße automatisch ändert
[Atcoder] [C ++] Ich habe ein Testautomatisierungstool erstellt, das während des Wettbewerbs verwendet werden kann
Eine Geschichte, die stolperte, als ich mit Transformer einen Chat-Chat-Bot erstellte
Python-Programm von "Buch, das schwieriges Programmieren leicht lehrt"
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Ein Allzweckprogramm, das Linux-Befehlszeichenfolgen mit Python formatiert
Ich habe den Super-Resolution-Algorithmus "PULSE" in einer Windows-Umgebung ausprobiert
Mezzanine-Einführungsnotiz, dass ich im Fluss stecken geblieben bin