Notwendige Bildverarbeitungsvorgänge vor dem Vorlagenabgleich

13

Nun, das könnte zeigen, dass ich keinen Bildbearbeitungskurs belegt habe.

Ich habe diese Vorlage, um ein Objekt in Bildern abzugleichen. Aber ein reales Objekt in Bildern sieht zum Beispiel nicht so aus, sondern das zweite Bild. Welche Vorgänge muss ich ausführen, damit die Bilder wie das zweite für den Vorlagenabgleich bereit sind? Zu Ihrer Information, das dritte Bild zeigt eine ideale Übereinstimmung.

Bei einer anderen Idee passe ich die Vorlage an das Bild an. Das heißt, ich gebe vier Eckkoordinaten auf dem Bild an, die mit denen in der Vorlage übereinstimmen. Anschließend wird eine Möglichkeit berechnet, die Vorlage an den Bereich anzupassen.

UPDATE: Problem behoben. Dank der Antwort, die ich unten ausgewählt habe. Ich habe es erfolgreich geschafft, meine Vorlage auf das Bild anzuwenden. Das letzte Bild zeigt das Ergebnis.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Tae-Sung Shin
quelle
Du wirst nicht mit diesem weißen Gitter mithalten können, oder? Sie möchten das tatsächliche bunte Raster in Ihrem zweiten Bild anpassen, richtig?
Endolith
@endolith Ich denke, so oder so ist in Ordnung.
Tae-Sung Shin
Können Sie das Grundkonzept Ihres Algorithmus teilen? Ich muss das gleiche für ein Diagramm tun.
Gilad

Antworten:

8

Das Beispielbild, das Sie gepostet haben, weist eine relativ starke Perspektive auf (es wird nicht direkt aus der Richtung der Oberflächennormalen abgebildet), was zu Problemen mit den Vorlagenanpassungstechniken führen kann, die die Blockverarbeitung verwenden. Ich gehe davon aus, dass Sie das Bild mit starker Perspektive aufnehmen müssen, also wollen wir zuerst die Bildtransformation abschätzen, die die perspektivische Projektion entfernt und ein gleichgerichtetes Bild ergibt ("gerades Bild").

Korrektur der perspektivischen Projektion, wenn die Form bekannt ist

Das ultimative Ziel der Vorverarbeitung ist es, die Ecken des grauen Rechtecks ​​zu finden, das der Hintergrund der Farbkarte ist. Ich habe einfach mit einem Schwellenwert mit konstantem Wert begonnen. In der Literatur / im Internet finden Sie viele Informationen zur Schwellenwertberechnung, wenn das Bild ungleichmäßig beleuchtet ist. Versuchen Sie jedoch, die Bildeinstellung so zu korrigieren, dass die Beleuchtung relativ gleichmäßig ist.

Schwellenwert mit konstantem Wert

Ich nahm an, dass die Farbkarte einen ziemlich großen Teil des Bildschirms einnimmt, so dass es wahrscheinlich der größte zusammenhängende Bereich des Bildes ist. Es gibt viele Schwarz-Weiß-Beschriftungsfunktionen (MATLABs bwlabel, IPPs LabelMarkers, OpenCV hat eine externe Bibliothek cvblob), die jeder einzelnen verbundenen Region einen eigenen Index geben. Nach der Beschriftung können Sie anhand eines Histogramms die Flächen der angeschlossenen Komponenten berechnen und anschließend die flächengrößte Komponente auswählen.

Finde den größten Blob

Es ist in der Regel sinnvoll, die Komponenten so zu füllen, dass sie keine Löcher aufweisen. Dadurch wird die Anzahl der Kantenpixel verringert.

Füllen Sie den Klecks

Jetzt können wir Kantenfindungsoperatoren verwenden (ich habe eine gradientenbasierte Methode verwendet, aber Sie können die Kante auch verfolgen, indem Sie weißen Pixeln folgen, die mit schwarzen Pixeln verbunden sind), um Pixel zu erhalten, die zur Grenze gehören.

Finde Kanten

Da es sich bei dem interessierenden Objekt um ein Rechteck handelt, habe ich vier Linien mithilfe der robusten Linienanpassung (RANSAC) an die Kantenpixel angepasst. Nachdem ich eine neue Linie gefunden hatte, entfernte ich alle Punkte, die sich in der Nähe der gefundenen Linie befanden. Dies zwingt nachfolgende Anpassungsoperationen dazu, andere Kanten des Objekts zurückzugeben. Als schließlich alle Kanten gefunden wurden, berechnete ich alle möglichen Schnittpunkte zwischen den Linien. Aus der Menge der resultierenden Punkte habe ich alle Punkte außerhalb des Bildes entfernt.

HH

x=HX

Diese Transformationsmatrix kann dann verwendet werden, um das Originalbild so zu transformieren, dass das Farbdiagramm direkt aus der Richtung der Oberflächennormalen abgebildet wird.

Linien an die Kanten anpassen

H

Wenn wir dennoch einen Vorlagenabgleich durchführen möchten, können wir eine beliebige Methode für den Vorlagenabgleich verwenden. Die Methode muss nicht rotations- / skalierungsinvariant sein, da das Bild bereits korrigiert ist.

Richtige Perspektive

buq2
quelle
1

Beginnen Sie mit der Kantenerkennung. Verwenden Sie dann die Hough-Transformation, um gerade Linien zu erkennen. Finden Sie dann heraus, welche Linien parallel sind und welche senkrecht sein sollten. Schätzen Sie dann die projektive Transformation so, dass die Linien, die eigentlich senkrecht sein sollten, senkrecht sind.

Dima
quelle