Dies ist meine experimentelle Implementation des Canny-Algorithmus. Dieser berechnet die Konturen in Bildern, welche dann später in Ketten umgewandelt und durch Polygone annähernd beschrieben werden könnten. Das Canny-Verfahren ist eins der besten und exaktesten, es liefert sehr gute Ergebnisse.
Für weitere Informationen sollte man mal nach Canny googeln. Hier ein kleiner Abriss des Ablaufs:
Zuerst berechnet man zwei Gauss-Filter, einmal einen horizontalen und einen vertikalen. Diese werden auf das Eingabebild (welches vorher in Graustufen umgewandelt wurde) angewandet, wodurch wir die Ableitung des Bildes in X- und in Y-Richtung erhalten. Daraus wird ein Norm- Bild errechnet, wobei gilt Norm^2 = X'^2 + Y'^2. Dann setzt das Beispiel alle Werte auf ein gewisses Minimum, Abschnitt "Thresholding", um im letzten Schritte die erkannten Konturen auf die lokalen Maxima zu reduzieren. Dafür werden für eventuelle Konturpunkte die theoretischen Werte vor und nach ihm auf der Kante interpoliert (bilinear) und überprüft, ob der aktuelle Wert größer ist als seine interpolierten Nachbar. Beim Filtern der Maxima wird das Thresholding wieder rückgängig gemacht.
History
15.05.2003 Hinzugefügt
Autor: Dominik Auras <Dominik_auf_vbinside.de>