I think the (classical) Hough transform is a great technique, but I found it really hard to understand it from formulas and static images. That’s the reason why I created an explorable explanation of it:

Hover one of the plots to see the corresponding transform in the other one. Click on the left plot to insert points. Drag points to change their position. Click on a point to remove it. For touchscreen users: use two fingers for scrolling.

Real-World Data

The left plot below shows edge pixels extracted from a simple image:

Hough input image

The right plot shows the hough transform for each edge pixel. Dark regions suggest lines formed by the edge pixels. Hover them to see which line in the image they represent.

Code is available on Github