Posted this before - had to implement Hough circle detection from scratch in JavaScript in case anyone is interested:
Posted this before - had to implement Hough circle detection from scratch in JavaScript in case anyone is interested:
Also, can it be used to detect circular arcs?
Circular arcs can be detected but how well depends on how long they are and depending on the amount and shapes of whatever other features exist in the image.
Hough can be thought of as a convolution of an image with a kernel that is a delta function in the parameter space. Peaks in the parameter space are then interpreted as being representative of features in the real space and with the strength of the representation being that of the height of the peak.
Our lab has done some research on fast GHT using general-purpose computation scheme optimisation, but I cannot find any publications in English from that distant period. For 3D Hough transform, there's an efficient solution for finding the argmax (3d line), also by my colleagues [1]
[0] pdf https://web.eecs.umich.edu/~silvio/teaching/EECS598/papers/B...
[1] pdf http://www.scs-europe.net/dlib/2016/ecms2016acceptedpapers/0...
It is called the randomized Hough transform.
https://en.wikipedia.org/wiki/Randomized_Hough_transform
Circular arcs is stretching it. :-) Do you need to find the endpoints of the arc? That would be two more dimensions to search over. If that's the case I would just use a maximum likelihood approach. You have to be careful in that case, if you have a circle the distance of points on the inside of the circle and points on the outside of the circle meshes up any naive fitting method.