Canny Edge Detector Algorithm was implemented based on the following steps:
- Convert to Grayscale
- Smoothing: Blurring the image to remove noise.
- Finding gradients: The edges should be marked where the gradients of the image has large magnitudes.
- Non-maximum suppression: Only local maxima should be marked as edges.
- Double thresholding: Potential edges are determined by thresholding.
- Edge tracking by hysteresis: Final edges are determined by suppressing all edges that are not connected to a very strong edge.
you can see the codes in the github repository(https://github.com/beytullahsarica/ImageProcessing/tree/master/CannyEdgeDetection)