Ein Großteil der Literatur zu Kantenerkennungsalgorithmen und -anwendungen, die die Kantenerkennung verwenden, bezieht sich auf Cannys Kantendetektor. So sehr, dass es fast wie "die Lösung" für die Kantenerkennung aussieht. Sicherlich würde es die beste Arbeit leisten, um Rauschen auszugleichen und Kanten zu erhalten.
Gibt es jedoch aus reiner Neugierde ein Problem mit Cannys Kantendetektor? oder gibt es anwendungsbereiche, in denen canny nicht am besten ist?
In diesem Zusammenhang ist eine schnellere Implementierung nicht wirklich wichtig. Der Fokus des Kantenerkenners, ob er gut oder schlecht ist, sollte auf der Qualität und dem Nutzen der erzeugten Kanten liegen.
Außerdem konzentriere ich mich nicht wirklich auf umsetzungsspezifische Themen. Ich suche nach theoretischeren Einschränkungen oder Merkmalen, die dem Algorithmus innewohnen.
quelle
Antworten:
Aus meiner Erfahrung sind die folgenden Punkte Einschränkungen:
Auch aufgrund der Gaußschen Glättung: Abhängig von der Größe des Gaußschen Kernels ist die Position der Kanten möglicherweise nicht korrekt.
Die Methode hat Probleme mit Ecken und Übergängen:
Dieses letzte Problem wird durch die SUSAN-Methode behoben , die Kanten besser verbindet und auch zu schönen Übergängen führt, wie die folgenden Beispielfiguren im verlinkten Artikel zeigen:
Eingabebild testen:
Ergebnisse SUSAN:
Ergebnisse Canny:
Sie können deutlich sehen, dass SUSAN die Ecken und Abzweigungen anstelle von Canny findet.
quelle
Ich kann mir einige vorstellen:
quelle
Nach meiner Erfahrung glättet die Kantenerkennung mit dem Canny Edge Detector die Kanten, bevor sie erkannt werden können, und das Timing und die Länge des Filters müssen perfekt übereinstimmen, um alle Kanten fehlerfrei zu erkennen.
quelle
Ich möchte nur eine Einschränkung des Canny-Detektors erwähnen, die seine Anwendung behindert, nämlich die Parametereinstellung. Ich denke, die Parametereinstellung ist nicht nur ein Problem für den Canny-Detektor, sondern auch für andere Kantenerkennungsmethoden.
quelle