Em geral, a maioria da literatura sobre algoritmos de detecção de borda e aplicativos que usam detecção de borda faz referência ao detector de borda de Canny. Tanto que parece quase "a solução" para a detecção de borda. Certamente, ele faria o melhor trabalho ao equilibrar o ruído e preservar as bordas.
No entanto, como uma simples curiosidade, existe uma área de preocupação para o detector de bordas de Canny? ou existem áreas de aplicativos em que o Canny não será melhor?
Nesse contexto, uma implementação mais rápida não é realmente uma preocupação. O foco do detector de arestas ser bom ou ruim deve ser a qualidade e a utilidade das arestas geradas.
Além disso, não estou realmente focado em questões específicas de implementação. Estou procurando mais limitações teóricas ou características inerentes ao algoritmo.
fonte
Respostas:
Da minha experiência, os seguintes pontos são limitações:
Também devido à suavização gaussiana: a localização das bordas pode estar desativada, dependendo do tamanho do núcleo gaussiano.
O método tem problemas com cantos e junções:
Esse último problema é abordado pelo método SUSAN , que conecta melhor as arestas e também resulta em boas junções, como mostra estas figuras de exemplo, conforme indicado no artigo vinculado:
Imagem de entrada de teste:
Resultados SUSAN:
Resultados Canny:
Você pode ver claramente que a SUSAN encontra os cantos e cruzamentos em vez de Canny.
fonte
Posso pensar em alguns:
fonte
na minha experiência, o processo de detecção de bordas com um detector de bordas astucioso suaviza as bordas antes de poder detectá-las, e o tempo e o comprimento do filtro devem ser a combinação perfeita para detectar todas as bordas sem erros.
fonte
Eu só quero mencionar uma limitação do detector Canny, que dificulta sua aplicação, e isso é a configuração de parâmetros. Acho que a configuração de parâmetros não é apenas um problema para o detector Canny, mas também para outros métodos de detecção de bordas.
fonte