How to isolate the circle from the shaded area?

24 ビュー (過去 30 日間)
Mahmoud
Mahmoud 2015 年 2 月 1 日
編集済み: Matt J 2015 年 2 月 1 日
I would like to have only a shaded area from the picture. I want to remove the circle from the binary image. Any idea?

回答 (1 件)

Matt J
Matt J 2015 年 2 月 1 日
How about
A=imread('http://www.mathworks.com/matlabcentral/answers/uploaded_files/24735/D1.png');
A=rgb2gray(A);
outer=~imfill(A,'holes');
outerd=imdilate(outer,ones(5));
newImage = A&~outerd;
  2 件のコメント
Mahmoud
Mahmoud 2015 年 2 月 1 日
Amazing!! That worked perfectly! Now, if I want to fill the isolated area to find the area in pixel using regionprops, how can I fill that region?
Matt J
Matt J 2015 年 2 月 1 日
編集済み: Matt J 2015 年 2 月 1 日
B=imerode(~A,ones(3));
S=regionprops(B,'PixelIdxList','Area');
[ar,idx]=sort([S.Area],'descend');
tofill=vertcat(S(idx(1:2)).PixelIdxList);
C=false(size(A));
C(tofill)=1;
result=~imdilate(C,ones(5));

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

Community Treasure Hunt

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

Start Hunting!

Translated by