Source: https://www.cs.colostate.edu/~cs510/yr2018sp/more_progress/pdfs/cs510_L17_Canny_Hough.pdf