4 ms·
Here is one using open CV in python [1]. While there are many ways to find circles the Hough transform is a fairly simple and popular one, I don't know what Mat
by smitec 10y ago
Here is one using open CV in python [1]. While there are many ways to find circles the Hough transform is a fairly simple and popular one, I don't know what Matlab uses internally but it would probably be an optimised version of Hough for circles. you can see some more here [2], implementing this process in raw python (with PIL or pillow) was something we did in our image processing course in undergrad so certainly not out of reach if you wanted to give it a go.
[1]: http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.html http://opencv-python-tutroals.readthedocs.io/en/latest/py_tu...
[2]: https://en.wikipedia.org/wiki/Circle_Hough_Transform https://en.wikipedia.org/wiki/Circle_Hough_Transform
- lscharen 10y agoI built a Machine Learning algorithm about a decade ago for doing this kind of feature extraction. It was targeted for finding samples on a tissue microarray, but it's basically the same problem (find approximately circular features on an approximate grid). The research was never published and it was a kind of a hack (an EM-style algorithm that added a step to update grid parameters after the M-step of the centroid fitting). It worked well enough, but would not be able to handle the heterogeneous circle sizes (1 mile + 1/2 mile) that are demonstrated in the post. Something like this is so well constrained (1 or 2 circle sizes) that running a hand-tuned mix of segmentation algorithms is a pretty good approach.
- folli 10y agoThanks! I will give this a try on the next rainy weekend.