Bildverarbeitung Hough-Transformation Alternativen
Hallo... Habe ein Bild aus einem Interferometer das bestimmte streifen / ringmuster ergibt.
wenn ich das jetz Fouriertransformiere bekomme ich bei nem streifenmuster ein maximum in der mitte, sowie 2 kleiner maxima links und rechst bzw oben und unten davon, (zb link oben, rechts unten).
Um zu sehe in welchem Winkel die Streifen verlaufen kann ich jetz einfach schauen in welchem winkel die gedacht linie durch die 3 maxima verläuft .
(das macht bis jetz die hough-transformation)
Is aber irgdnwie suboptimal, wiel sehr rechenaufwändig...
Hat irgdnwer ne idee, wie ich das rechentechnisch günstiger lösen kann?
Bei so linenfolgerobotern könnte man das ja auch so ähnlich lösen oder?
(wens intressiert: geht drum ein Objekt ganz supigenau zu vermessen, dazu muss es aber erst positioniert werden, mit dem streifenmuster kann man dann erkenne wohin das geschoben werden muss.. so ungefähr)
bin für alle tipps dankbar...
Liste der Anhänge anzeigen (Anzahl: 2)
Ebefalls einen guten Morgen mare!
Danke, dass du so engagiert bist. Ich hätte nicht erwartet, dass jemand einfach etwas programmiert um die probleme eines anderen zu lösen. In spätestens 1-2 monaten fange ich auch an zu programmieren. Ich muss noch bis dahin einem automomen Hubschrauber beibringen durch 2 torbögen zu fliegen, die nur durch eine stereokammera erkannte werden sollen. Ich mach zur zeit meine Diplomarbeit am DLR. Du scheinst dich ja ziemlich gut auszukennen. Darf ich fragen was du so machst?
Die idee mit dem Lotfuspunkt ist mir auch schon gekommen. Ich habe in der zwischenzeit einen algorithmus geschrieben, der in der Lage ist einzelne Linien sinnvoll zu einer ganzen zusammenzufassen (sieht fast menschlich aus) und auch die Lotfuspunkte benuzt um den start / endpunkt der Ausgleichslinie zu bestimmen. Das passt ziemlich gut zu deiner Idee mit den quadraten, da dort auch nur Teillinien gefunden werden. Hatte mir auch schon Gedanken gemacht mit einer Maske durch das Bild zu rennen und wenn eine Linie gefunden wurde, ihr in ihre Richtung zu folgen und weiterzuzeichnen. Bei dem Gedancken bleibt natürlich das problem, wenn man ein "X" im Bild findet und die maske genauso groß ist, wird keine linie gefunden. Mit der Maske ist es auch laufzeittechnisch kein großes problem, da wenn man mit der Maske ein Pixel weiter nach rechts geht kann man einfach die ganz Linken Pixel aus der rechnung für die Regression rausrechnen und die neuen Pixel rechts draufrechnen, so spart man sich die in der Mitte neu zu brechnen (die idee hab ich von einem Ing. hier am standort). Mit der Maske hätte man auch die möglichkeit nach lokalen Maxima zu suchen, wenn man sich die Lineare abhängikeit anschaut pro maske und von dort aus weitersuchen (da man sonst eine schier unendliche Menge an linien hat (pro Pixel eine weitere)).
Mein großtes problem ist es immernoch eine sinnvolle Rheienfolge zu finden in der man das bild/die Pixel/ die Vektorpunkte durchläuft.
Bei deiner Idee mit den Quadraten treten leider ähnliche probleme auf, wie beim heutigen Hough. Wenn eine verrauschte linie z.B. genau zwischen den quadraten verläuft wird sie halb im rechten und halb im Linken gefunden. Das könnte dazu führen, dass sie unter diesen Umständen nicht über den Schwellenwert kommt und somit nicht erkannt wird. Bei hough gibt es auch solche probleme, fall eine Linie genau zwischen dem diskretisiertem winkelintervall verläuft. Und das war eigentlich meine hauptmotivation sich gedancken über eine alternative zu machen. Ich würde gerne mit dir zusammen noch etwas noch besseres finden.
bis demnähst
tompcat
P.S. Du kannst gerne weiterhin davon ausgehen, dass du die Punkte in Vektorschreibweise vorliegen hast, dass ist ja niemals ein problem das umzuformen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Mare
Danke für den Hinweis, aber ich hab schon viele Vorlesungen gehört, die sich damit befassen. Ich habe ganz bewust nur die kleinen Balken erkennen wollen, weil dort das tiefenbild besser ist. Meine Vorverarbeitung sucht gegenüberliegende Kanten und geht vom Sobel-bild aus und sucht von jedem Punkt aus, der über dem Threshold liegt nach einem weiterem Punkt, in Gradientenrichtung um einen Punkt zu finden der eine entgegengesetzte GradientenRichtung hat und ebenso über dem Threshold liegt. Klingt wahnsinnig kompliziert ist es aber nicht und liefert saugeile Ergebnisse. Funktioniert leider nur sehr effizient, wenn nicht sehr weit nach dem Gegenüberliegendem punkt gesucht wird. Und in den Bildern sind somit die Balken ein Leuchtfeuer für den hough.
So jetzt hab ich genug zeit mir deine Idee durchzulesen. Ich lass dann von mir hören
Tompcat