Indroduction
Today I would like to introduce a variety of Hough transform, which named "weighted Hough transform"[1].
The weighted Hough Transform
The idea is super simple.
Instead of using binarized edge input (edge or non-edge), I directly use edge intensity as an input of Hough, and vote based on the edge intensity.
As an small tips, it's better to cut small edge value input to accelerate the process.
Example result
Here is a input from opencv sample aero3.png:
If you use ordinary Hough transform after ordinary Canny edge detection, the result becomes like this;
You can see it extracts not so stronger edge first.
You cannot change the situation just changing the Hough threshold.
On the other hand, the weighted Hough transform output stronger edge first;
For your interest, I also put the result of probabilistic Hough;
The situation is the same with standard Hough transform.
Implementation
I already made a pull request to OpenCV community.
I will notice you later when it is merged.
Summary
Today, I introduced the algorithm; weighted Hough transform.
It uses edge intensity as an input though standard Hough transform just accespts binarized edge image.
The weighted Hough transform can detect stronger edge first.
I hope this function will be widely used in the world.
Reference
[1] Mohammad K. Ibrahim, E. C. L. Ngau, and Mohammad Farhang Daemi "Weighted Hough transform", Proc. SPIE 1607, Intelligent Robots and Computer Vision X: Algorithms and Techniques, (1 February 1992); https://doi.org/10.1117/12.57063