Adaptive Canny edge detection

14 vues (au cours des 30 derniers jours)
Sara A.
Sara A. le 19 Août 2016
Commenté : Sara A. le 19 Août 2016
What is Adaptive Canny edge detection ? and what is the difference between it and canny edge detection? and why Adaptive Canny Edge detection is better than Canny edge detection? and is it implemented in matlab ?

Réponse acceptée

Ryan
Ryan le 19 Août 2016
Canny edge detection is accomplished using the edge function. Matlab will get "automatic/adaptive" thresholds if you don't specify thresholds as an argument. An easy way to implement this is to simply call Edge twice; first to get an initial capture of the thresholds, then to adjust thresholds as needed based on the automatic thresholds.
[~,threshOut = edge(I,'Canny');
threshold = threshOut*1.0;
BW1 = edge(I,'Canny',threshold);
Just adjust the multiplier to adjust thresholds. Matlab's adaptive technique is fairly straightforward, and I believe it is a variant of the Otsu method; they simply throw out 70% of the detected edge pixels for the high threshold, and the low threshold is some constant factor multiplied by the high threshold.
There are a number of other self-adaptive ways to choose Canny thresholds, a few are detailed here: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5476095
  1 commentaire
Sara A.
Sara A. le 19 Août 2016
Yes, I saw the constant PercentOfPixelNotEdge is 0.7 So the only difference between canny edge detection and adaptive canny is the automatic threshold technique Thank you for your answer

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by