[PYTHON] Mit OpenCV die einfachsten Fehler finden

Ein Bekannter sagte, ich brauche ein Programm, um die Unterschiede zwischen den Bildern zu vergleichen, also habe ich es mit Python und OpenCV erstellt. Der Punkt ist, mit OpenCV nach Fehlern zu suchen, aber ** die Bedingung ist, dass es keine Diskrepanz zwischen den Bildern gibt **, so dass es möglicherweise nicht für praktische Zwecke geeignet ist. Wenn Sie eine robustere Suche nach Fehlern benötigen, lesen Sie möglicherweise diesen Artikel. Ich denke, die Implementierung ist ungefähr zehnmal leichter als die Methode in diesem Artikel ...

Ergebnis

Das folgende Bild wird ausgegeben.

image.png (Das Bild ist Wikipedia Mehr zitiert)

Quellcode

import cv2
import matplotlib.pyplot as plt

img1 = cv2.imread('img1.png')
img1 = cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)
img1 = img1/255
img2 = cv2.imread('img2.png')
img2 = cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)
img2 = img2/255
dif = cv2.absdiff(img1,img2)
dif[dif>0] = 1

fig,axs = plt.subplots(2,2)
ar = axs.ravel()
ar[0].imshow(img1)
ar[1].imshow(img2)
ar[2].imshow(img1*dif*0.8 + img1*0.2)
ar[3].imshow(img2*dif*0.8 + img2*0.2)
plt.show()

Die wesentliche Verarbeitung von OpenCV besteht nur aus wenigen Zeilen, die Vorverarbeitung für die Anzeige mit matplotlib dauert jedoch einige Zeilen. Der Punkt ist, dass Sie mit cv2.absdiff ein Differenzbild erhalten können, also verwende ich es als Maske. Wenn diff unverändert bleibt, wird die Differenz für jeden RGB-Kanal genommen, sodass sie durch die Operation "dif [dif> 0] = 1" maskiert wird.

Der Punkt, der länger als erwartet gedauert hat, ist, dass die Bilddaten von OpenCV sowohl den Typ "int" als auch den Typ "float" annehmen können, was normalerweise praktisch ist, aber diesmal hat die Maske nicht gut funktioniert. Wenn das Bild gelesen wird, wird es daher "/ 255" und gewaltsam in "float" umgewandelt.

Recommended Posts

Mit OpenCV die einfachsten Fehler finden
Versuchen Sie, das Bild mit opencv2 zu verwischen
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Der einfachste Weg, OpenCV mit Python zu verwenden
Binarisierung mit OpenCV / Python
Lesen Sie die OpenCV-Dokumentation
Schreiben Sie mit OpenCV-Python Zeichen in die Kartenillustration
Füllen Sie den Hintergrund mit einer einzigen Farbe mit OpenCV2 + Python
Sprites mit OpenCV drehen
Datenerweiterung mit openCV
Visualisieren Sie mit OpenCV den Wertschätzungsstatus von Kunstwerken
Einfache TopView mit OpenCV
Stolpern Sie mit opencv3 von Homebrew
Erstellen Sie mit opencv ganz einfach Miniaturansichten aus erotischen Videoordnern
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Die Geschichte der Anzeige von Bildern mit OpenCV oder PIL (nur)
Schätzen Sie die Haltung des AR-Markers mit Python + OpenCV + Drohne
Suche nach einer Lösung für das N-Queen-Problem mit einem genetischen Algorithmus (1)
Gesichtserkennung mit OpenCV von Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
Setzen Sie den Debugger mit der Nase ein
Die einfachste AWS Lambda-Implementierung
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
Töte den Prozess mit sudo kill -9
[Python] Verwenden von OpenCV mit Python (Basic)
Loop-Video-Laden mit opencv
Echtzeit-Kantenerkennung mit OpenCV
Errate das Passwort mit klee
gethostbyaddr () kommuniziert mit der Außenwelt
Gesichtserkennung mit Python + OpenCV
Schaben Nikkei Durchschnitt mit Dramatiker-Python
Überprüfen Sie den Code mit flake8
Kalibrieren Sie das Modell mit PyCaret
Holen Sie sich Bildfunktionen mit OpenCV
Rufen Sie die API mit python3 auf.
Gesichtserkennung / Schneiden mit OpenCV
Probieren Sie OpenCV mit Google Colaboratory aus
Erstellung eines Kaskadenklassifikators mit opencv
Verwenden von OpenCV mit Python @Mac
Bilderkennung mit Keras + OpenCV
Anime-Gesichtserkennung mit OpenCV
Die Farbextraktion mit Python + OpenCV löste das Rätsel des grünen Hintergrunds
Ich habe versucht, das Bild mit OpenCV im "Skizzenstil" zu verarbeiten
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Der schnellste Weg, um regelmäßig Kamerabilder mit Pythons OpenCV zu erhalten