J'ai découvert un certain nombre d'algorithmes de détection des contours, notamment des algorithmes tels que les méthodes Sobel, Laplacian et Canny. Il me semble que le détecteur de bord le plus populaire est un détecteur de bord de Canny, mais existe-t-il des cas où ce n'est pas l'algorithme optimal à utiliser? Comment puis-je décider quel algorithme utiliser? Merci!
algorithms
image-processing
edge-detection
PearsonArtPhoto
la source
la source
Réponses:
Il existe de nombreuses possibilités de détection des contours, mais les 3 exemples que vous avez mentionnés tombent dans 3 catégories distinctes.
Sobel
Ceci se rapproche d'une dérivée du premier ordre. Donne des extrema aux positions du gradient, 0 ou aucun gradient n'est présent. En 1D, c'est =[−101]
Il y a d'autres alternatives à Sobel, qui ont +/- les mêmes caractéristiques. Sur la page Roberts Cross sur Wikipedia, vous pouvez trouver une comparaison de quelques-uns d’entre eux.
Laplace
Ceci se rapproche d'une dérivée de second ordre. Donne 0 aux positions du dégradé et aussi 0 en l'absence de dégradé. Il donne des extrema où un dégradé (plus long) commence ou s’arrête.
L'effet de ces 2 sur différents types d'arêtes peut être visualisé de manière optimale:
Prudent
Ce n'est pas un simple opérateur, mais une approche en plusieurs étapes, qui utilise Sobel comme l'une des étapes. Lorsque Sobel et Laplace vous donnent un résultat en niveaux de gris / virgule flottante, que vous devez définir vous-même, l'algorithme de Canny utilise le seuillage intelligent comme l'une de ses étapes. Vous obtenez donc simplement un résultat binaire oui / non. De plus, sur un bord lisse, vous ne trouverez probablement qu’une seule ligne quelque part au milieu du dégradé.
la source
Alors que Sobel et Laplacian ne sont que des filtres, Canny va plus loin que cela de deux manières.
Tout d'abord, il effectue une suppression non maximale qui supprime le bruit produit par toutes sortes d'objets et de dégradés de couleurs dans une image. Deuxièmement, il comprend en fait une étape qui vous permet de distinguer différentes directions d'arête et de remplir les points manquants d'une ligne.
Autrement dit, le détecteur de bord Canny appartient à une classe complètement différente de Sobel et de Laplacian. Il est beaucoup plus intelligent dans la mesure où il inclut tout un ensemble de post-traitement, tandis que Sobel et Laplacian sont simplement des sorties de filtres passe-haut suivies d'un seuillage binaire linéaire.
la source
Les deux décisions les plus importantes lorsqu’on essaie de détecter des arêtes sont, pour moi en général:
Puis-je segmenter les objets à la place, puis utiliser un opérateur morphologique pour rechercher le bord de l'image binaire (segmentée)? Avec des données bruitées, cela a tendance à être plus robuste.
Quel filtre de lissage préservant les bords dois-je utiliser pour réduire le bruit de l'image? Les filtres de bord sont basés sur la différenciation, qui souffrira des données bruitées. Le choix le plus simple est le filtre médian, mais les filtres à diffusion anisotrope ou à moyens non locaux offriront de meilleures performances au prix d'avoir plus de paramètres à ajuster.
Pour la détection des contours elle-même, je ne peux pas penser pour une bonne raison de ne pas utiliser Canny.
la source
Approche SUSAN
Une autre approche de la détection des contours et des angles est l’approche SUSAN .
Dans cette approche, plutôt que des approximations dérivées, une approche d' approximation intégrale est utilisée. Cela présente l'avantage non seulement de détecter les contours, mais également de détecter les "caractéristiques bidimensionnelles" (c'est-à-dire les angles).
Un autre avantage de l’approximation intégrale est que le bruit a moins d’effet sur les résultats.
la source
Canny donne une image binaire et dépend de seuils donnés en externe (qui dépendent de l’image / de l’application).
Les filtres basés sur la convolution produisent une image "d'intensité de bord". Ceci est utile si le poids ou la force du bord est important (par exemple, dans la transformation de Hough pondérée).
la source