2016-05-30 8 views
0

Ich habe eine Reihe von Trainingsbilder, bestehend aus binären Rechtecken. Ich muss ein Programm schreiben, das ein anderes Binärbild (mit Rauschen, Skalierung, Drehung und geringfügiger Verschiebung der Rechteckpositionen) aufnimmt und das am besten übereinstimmende Bild in dem Trainingssatz findet.Vorlage passend einfache binäre Bild von Rechtecken

z.B. Eingabebild:

Input image

Ausgebildete Bild: Sollte mit diesem

Trained image1

Ausgebildete Bild angepasst werden: Sollte nicht mit diesem

Trained image 2

Zu meiner angepasst werden Wissen gibt es 3 Ansätze.

  1. Template-Anpassung: Ich erzeuge eine Reihe von skalierten und gedrehten Varianten des Trainingsbilds für die Template-Anpassung. Das Problem, mit dem ich konfrontiert wurde, ist, dass das Trainingsbild mit der höchsten Punktzahl immer das verkleinerte Beispiel mit den meisten weißen Rechtecken ist (da eine nahezu perfekte Übereinstimmung gefunden wird, wenn das weißeste Beispiel in eines der weißen Rechtecke in der Eingabe passt image)

  2. Feature-Anpassung: Nach meinem Verständnis beruht Feature-Matching auf der Tatsache, dass bestimmte Pixel (oder kleine Pixelregion) in einem Bild eindeutig sind. Da jedoch jede Kante/Ecke genau wie jede andere Kante/Ecke aussieht, würde das Feature-Matching in diesem Fall fehlschlagen. (Bitte korrigieren Sie mich, wenn ich falsch liege)

  3. Manuelles Codieren der Rechteckinformationen (z. B. Ausrichtung, Position usw.), im Grunde erstellen einen eigenen Deskriptor für die Vorlagen und versuchen zu entsprechen. (Gibt es eine Möglichkeit, einen Deskriptor für große Bilder/Vorlagen zu erstellen?)

Kann mir jemand sagen, wie ich damit umgehen soll?

+0

bezogen: http://stackoverflow.com/questions/34622852/best-approach-for-template-matching-of-binary-edge-images – Woofas

+0

ich denke, Konturen zu finden und sie zu filtern ist ein einfacher Weg. Werfen Sie einen Blick auf http://StackOverflow.com/a/33860887/5294258 – sturkmen

Antwort

0

Ich landete mein erster Ansatz

Template Matching oben mit: Ich habe eine Reihe von skaliert und gedreht Varianten des Trainingsbild für Template-Matching erzeugen. Das Problem, mit dem ich konfrontiert wurde, ist, dass das Trainingsbild mit der höchsten Punktzahl immer das verkleinerte Beispiel mit den meisten weißen Rechtecken ist (da eine nahezu perfekte Übereinstimmung gefunden wird, wenn das weißeste Beispiel in eines der weißen Rechtecke in der Eingabe passt image)

Aber um das Problem zu lösen, indem ich meistens weiße Templates blind mit den weißen Regionen des Abfragebildes passte, füllte ich die verkleinerten Bilder mit schwarzem Raum, um das Matching einer weißen Vorlage zu bestrafen, wenn sie auch weiß ist.

Funktioniert ziemlich gut für meine Bedürfnisse.