Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hough Transform for finding curve segments

Hough Transform can be used to extract lines from images. It can also be used to extract curves - this is a little harder though because higher dimensional Hough transforms are resource consuming. I was wondering whether how one restricts the Hough transform to 2D voting space for a curve of order 3 i.e. x^{3}+ax^{2}+bx+c ?

Anyone know any good sites explaining this (can't seem to find any). Or an explanation here if there isn't one :).

like image 379
ale Avatar asked Mar 31 '11 15:03

ale


1 Answers

The essence of the Generalised Hough Transform that the "sides" of the accumulator is the answer you are looking for. If you are trying to match ellipses or arbitrary curves - in your case a, b, c parameters then you should build 3D accumulator and look for maximum there. Google "ellipse detection using hough transform" or "arbitrary shape detection using hough transform".

There are many way to optimise your search in multi dimensional accumulator, so don't be afraid to build multidimensional HT parameterised space - it can give you good overview of your problem.

You may want to split your search into two stage - for example build a classic 2D for your a and b parameters, then use very simple 1D accumulator for finding c, this has been done in edge detection, but be aware that this split can introduce large errors if you a,b,c interdependent.

Ways to optimise multidimensional Hough Transform: (Probabilistic) Randomised Hough transform, Hybrid and Multidimensional Hough Transform.

Also Generalised Hough Transform and Radon Transform are nearly synonymous, so for arbitrary shape detection "Radon transform" may give you better ideas: Hough Transform is a discrete version of continuous Radon Transform.

like image 91
Alex Mikhalev Avatar answered Oct 24 '22 03:10

Alex Mikhalev