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.
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Explore similar technical troubleshooting questions and verified MATLAB solutions: