Ich möchte die Linie zwischen Farbe Blau und Farbe Grau im folgenden Bild finden:
Genauer gesagt, die Endpunkte dieser Linie.
Ist die Hough-Transformation eine Wahl? Wenn ja, wie soll ich das Bild einrichten, bevor ich Hough verwende?
Jede Möglichkeit, dies zu lösen, wäre hilfreich.
Antworten:
Im Allgemeinen möchten Sie einen Kantendetektor wie den Canny-Kantendetektor für diese Art von Problem. Die Hough-Transformation ist nützlich, um Linien anstelle von Kanten zu extrahieren.
In diesem speziellen Fall ist es jedoch besser, wenn Sie Folgendes tun:
da ist es so ein einfaches bild.
quelle
Für ein so einfaches Bild findet ein Faltungskern wie der folgende Kanten gut:
[-1 2 - 1]
Dies ergibt ein einzelnes Kantenpixel an jedem Kantenpunkt. Keine Aufregung, kein Muss. Canny ist für dieses Problem zu involviert. Wenn Sie Randpunkte für Linien in einem beliebigen Winkel suchen möchten, können Sie einen einfachen Laplace-, Laplace-Gauß- (LoG) oder Differenz-Gauß-Wert (DoG) verwenden. Sobel und Prewitt sind ebenfalls einfach, aber ungeeignet, da sie eine Linie mit "doppelter Dicke" ergeben.
Es gibt eine unglaublich schnelle Implementierung von Hough, die hier beschrieben wird: http://www.ic.uff.br/~laffernandes/projects/kht/index.html
Es gibt auch "parameterlose Hough" -Algorithmen, die sehr schnell sind, aber etwas schwierig zu implementieren und zu debuggen sind.
quelle