The Canny edge detection operator was developed by John F. Canny in 1986 and uses a multiple stage algorithm to detect a wide range of edges. Most importantly, Canny also produced a computational theory of edge detection explaining why the technique works.