Wie erkennt man Farben aus der Farbkarte?


9

Ich entwickle eine Vision-Anwendung, die die folgende Farbkarte und die Kamera verwendet, um die Farbe jedes Patches in der Tabelle zu extrahieren. Dazu muss ich zuerst den Diagrammbereich in einem Bild erkennen und den Bereich mit der vorhandenen Vorlage abgleichen, die Positionen von Patches enthält.

Meine Frage: Ich muss den Farbfeldbereich erkennen, indem ich vier Ecken des Diagramms erkenne. Sie können die Ecken sehen, die die kleinen Rechtecke im Bild unten anzeigen. Ich weiß, dass eine Möglichkeit darin besteht, den Benutzer diese Ecken auswählen zu lassen, indem er darauf klickt. Gibt es jedoch eine Möglichkeit, vier Ecken des Bildes automatisch zu erkennen?

Geben Sie hier die Bildbeschreibung ein


Nur neugierig, wo kann man eine solche Farbreferenzkarte bekommen?
hotpaw2

@ hotpaw2 Wie fast immer google. Suche nach dem Begriff "it8 Ziel"
Tae-Sung Shin

Antworten:


4

Sie können Hough-Linien unterbringen, um den Farbbereich zu erkennen

  • Erkennen Sie zuerst alle Linien
  • Linien mit der längsten Länge wären die äußersten
  • Wählen Sie die obere horizontale Linie aus und passen Sie die Vorlagen für die Quadrate an.
  • Sobald Sie die Quadrate gefunden haben, überqueren Sie die Maut nach unten und erreichen die anderen Quadrate.
  • Markieren Sie alle Punkte, an denen die Quadrate gefunden wurden
  • Sie haben jetzt einen umschließenden Bereich für die Farbkarte.

2

Jedes 2D-Array einer Farbkomponente (RGB usw.) ist ziemlich kontrastreich und unterscheidungskräftig. Daher könnte ich versuchen, eine komplexe 2D-FFT jeder Farbkomponente zu verwenden, um den Maßstab und den Versatz des Fotobilds gegenüber dem eines Referenzbilds zu bestimmen. Verwenden Sie diese dann, um die gemessenen / bekannten Koordinaten der Ecken und / oder Flecken im Referenzbild anzupassen und Koordinaten im Foto zu erzeugen.

Möglicherweise müssen Sie einige Koordinaten auf einem Referenzbild mit einem Bitmap-Editor aus erster Hand messen.


1

Als ersten Schritt würde ich alle Unordnung mit Grau und Text entfernen. Ausgehend von allen vier Seiten werde ich anhalten, bis die meisten Pixel eine eindeutig bekannte "graue" Farbe haben.

Dadurch bleibt nur das Schachbrett übrig, das aus verschiedenen Farben besteht. Sie erwarten ungefähr 22x12 - ungefähr 264 Farben.

Eine einfachste Methode wäre die Anwendung eines einfacheren Palatalisierungsalgorithmus. Wenn Sie dies in ein GIF-Bild übersetzen müssten, wird die Farbquantisierung angewendet, wobei jeder Farbcluster als Schwerpunktfarbe dargestellt wird.

Dies wäre in Ihrem Fall besonders einfach, da die Quelle bereits eine Art Gaumen ist und Sie eine gute, anständige Vermutung anstellen können, um zu beginnen.

Überprüfen Sie dies heraus:

NeuQuant: http://members.ozemail.com.au/~dekker/NEUQUANT.HTML

Octree-Farbquantisierung: http://www.cubic.org/docs/octree.htm . Siehe auch dies .

Dies sind nur einige Referenzen; In den meisten Bibliotheken, die solche Bildformate verwenden, finden Sie jedoch gebrauchsfertigen Code. (BMP, PNG und GIF unterstützen solche Darstellungen). Schauen Sie sich auch libpng und libjpeg für einige schnelle Implementierungen an.


0

Warum nicht nach den Grenzen des Diagramms suchen, anstatt nach Ecken? Sie können versuchen, einen Kantendetektor zu verwenden und dann mit der Hough-Transformation gerade Linien zu finden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.