I know that for the Hough Transform to work on an image, it needs to be a binary image. To convert from a grayscale image, an edge detection algorithm should be employed. I notice that people always use Canny edge detection instead of others (Sobel, etc). Why is that?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
Canny Edge Detection is considered to be a better (In False Alarm sense) edge detection than those you mentioned.
Those 2 steps reduce the number of "False" edges and hence create a better starting point for farther process like Hough Transformation.
Your statement that the Hough transform (HT) needs to be applied on a binary image is not true. The original HT indeed was formulated that way, though in the meanwhile different authors extended the HT in numerous ways -- for example to consider the gray scale values of each image pixel. As a consequence, the step of edge detection can be omitted.
Citations concerning grey scale values taken from http://dx.doi.org/10.1109/JSEN.2014.2311160: