2016-08-09 4 views
0

Ich habe ein Bild mit nur schwarzen und weißen Pixeln. Das Bild enthält Kanten (die schwarzen Pixel) mit der Breite eines Pixels (jedes schwarze Pixel hat genau ein oder zwei schwarze Nachbarpixel). Jetzt möchte ich die Kanten in verschiedene Formklassen gruppieren (z. B. Linie, Dreieck, Ellipse). Problem: Die Kanten sind keine perfekten Linien, Dreiecke oder Ellipsen.Wie weist man einer Kante eine Form zu?

Ich denke, ich kann das Problem durch logisches Denken teilweise lösen. Aber ich habe auch komplexere Geometrien, wo dies schwieriger wird.

Weiß jemand, wie man diese Art von Problem löst? Oder kann mir jemand Ideen geben?

Antwort

0

Eine allgemeine Methode, um die Form der Kanten zu finden, besteht darin, die konvexe Hülle der Punkte zu finden. Danach können Sie versuchen, Seiten in der konvexen Hülle zu verwerfen, die kleiner als ein bestimmter Schwellenwert sind.

+0

Vielen Dank für diese nützliche Information. Das ist eine gute Lösung für die einfachen Geometrien. Aber was ist mit komplexeren Geometrien, die opencv nicht kennen kann? Außerdem möchte ich den Code selbst schreiben und vermeiden, opencv zu verwenden. Ich interessiere mich für dieses Problem in der Theorie. – Toni

+0

Ich denke, jede Form hat eine andere Art, die beste Passform zu finden. Für den passenden Kreis können Sie die kleinsten Quadrate verwenden. Zum Anpassen einer Ellipse oder eines Rechtecks ​​können Sie die Eigenzerlegung der Korrelationsmatrix der Formkoordinaten verwenden. Für eine allgemeine Methode finden Sie vielleicht den konvexen Rumpf der Form und dann verwerfen Sie Kanten, die sehr klein sind oder so ähnlich. –

+0

Danke für die Erwähnung von Convexhull! Das wird mir helfen, meine Ziele zu erfüllen! Wie kann ich Sie auffrischen und den Anwser als anwser markieren? – Toni

Verwandte Themen