Is there an automatic way to find the centre of this circularly-symmetric pattern?

1 次查看(过去 30 天)
I have the following captured image (a spoke pattern for characterising optical systems), which is in the form a double type matrix, with integer values that range from 75 to 246. I would like an automatic way to extract the pixel position of the centre of the spoke pattern.
I have tried using imfindcircles() to detect the dark concentric rings, but had no luck. Maybe because these rings are discontinuous? Attached is also the workspace file M.mat which contains the image. Thanks!

回答(1 个)

J. Alex Lee
J. Alex Lee 2020-3-12
This would be not at all efficient and maybe not robust, but you could pose a minimization problem:
Find the coordinates (Xc,Yc) such that, when taking the surrounding pixels within some radius (must be enough to capture the pattern, but circle can never go outside the image), the center of gravity of the selected pixels is closest to (Xc,Yc).

产品


版本

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by