I was developing an analysis of the performance of different edge detetors (Canny, Sobel and Roberts). Matlab give us the function edge, that has as one of its inputs the parameter threshold. I gave the same threshold (=0.1) to all of them (Matlab automatically generated the low threshold for Canny’s detetor). The result, given the code that i write, was:
(Ignored the LoG detector, i think i can interpret those results).
After that, i tested those same filters but with a different threshold (=0.8, which gave a 0.32 low-threshold for Canny’s detector). However, now only Canny detects bondarys that are associated with stronger edges (stronger gradients associated with boundarys that separate structures with higher constrast):
I can’t understand those results, because if canny detects stronger boundarys and sobel is more sensible for stronger boundarys (as we seen for threshold = 0.1 that he almost only detects abrupt changes of intensity) why sobel doesn’t seem to calculate a estimative of the gradient that is comparable to that given by canny?
With that arrises another question: what really means the threshold value for canny, sobel and roberts? I would say they were a value of the magnitude of the gradient, somehow normalized because it has to belong to [0,1] (that i don’t understand as well, normalized relative to what ?)
Thank you in advance!