Ich muss die Quadrate in einem Bild mit OpenCV finden (kein Problem in Matlab oder einem anderen, im Allgemeinen, was ich erwarte, sind einige Ideen).
Betrachten Sie das Testbild unten:
Ich muss die farbigen Quadrate im obigen Bild genau finden (nicht die weißen langen Streifen).
Was habe ich getan :
Ich habe die übliche Methode angewendet (die mit OpenCV-Beispielen geliefert wird), dh Konturen in allen Farbebenen zu finden, diese zu approximieren und auf Anzahl der Elemente = 4 zu prüfen. Es funktioniert in gewissem Umfang, dass nur wenige Quadrate erkannt werden, insbesondere die dunklen.
Der nächste Schritt, den ich tat, war Vorhersage . dh diese Anordnung ist festgelegt . Wenn also einige erhalten werden, kann ich die verbleibenden vorhersagen. Es funktionierte auch ein bisschen weiter. Aber die Genauigkeit war sehr schlecht.
Ich bin jedoch der Meinung, dass Vorhersage keine gute Methode ist und nicht immer die richtigen Antworten liefert, die im ersten Schritt gegeben wurden.
Was ich brauche :
1) Gibt es andere bessere Methoden, um diese Quadrate genauer zu erkennen? Oder mehrere Methoden?
Ein wichtiger Punkt ist, dass Zeit hier kein Problem ist . Algorithmus kann langsam sein, egal. Genauigkeit ist jedoch das Hauptkriterium.
Manchmal können Bilder viel unscharfer sein.
Und eines der Hauptprobleme, mit denen ich konfrontiert war, war, dass einige Quadrate fast die gleiche Farbe wie der Hintergrund haben (siehe Spalte 3, erstes und zweites Quadrat).
Auf der Suche nach Ideen, danke im Voraus
UPDATE:
Unten ist das maximale genaue Ergebnis, das ich erhalten habe:
Natürlich wird das Ergebnisbild ein wenig verkleinert.
UPDATE 2:
Ich habe in meiner Antwort unten eine viel bessere Lösung angegeben: https://dsp.stackexchange.com/a/7526/818