How to find the circle in image?

1 回表示 (過去 30 日間)
Mohsina Zafar
Mohsina Zafar 2017 年 12 月 4 日
コメント済み: Mohsina Zafar 2017 年 12 月 9 日
Hello,
I have an image and I am unable to extract the circle in it. I have used all the methods including regionprops, imfindcircles and much more.
Can you kindly tell how I can make the whole circular region white and the rest of the image black?
Best Regards.

回答 (1 件)

KSSV
KSSV 2017 年 12 月 5 日
YOu can try the below code. I have attached the result image and the function used. YOu can reduce the Radius the radius of circle, if you want.
I = imread('image.png') ;
I = rgb2gray(I) ;
figure(1)
imshow(I)
%%GEt the white regions
[y,x] = find(I) ;
%%Fit a circle
[xc,yc,R,a] = circfit(x,y) ;
%%If you want reduce the Radius by some fraction
% R = R-15 ;
th = linspace(0,2*pi) ;
xi = xc+R*cos(th) ; yi = yc+R*sin(th) ;
%%Get indices lying inside the circle
[ny,nx] = size(I) ;
[X,Y] = meshgrid(1:nx,1:ny) ;
idx = inpolygon(X(:),Y(:),xi,yi) ;
I(idx) = 255 ;
figure(2)
imshow(I)
Result:
  1 件のコメント
Mohsina Zafar
Mohsina Zafar 2017 年 12 月 9 日
Thank you for your answer. But I want the rest of the image to be black (all that is not a circle).

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by