RGB = imread('coin.jpg');
imshow(RGB);
hold on
I = rgb2gray(RGB);
threshold = graythresh(I);
bw = im2bw(I,threshold);
figure;
imshow(bw)
bw = bwareaopen(bw,10);
se = strel('disk',2);
figure;
bw = imclose(bw,se);
bw = imfill(bw,'holes');
imshow(bw);
[L num]=bwlabel(bw,4);
s=zeros(num,1);
for i=1:num
s(i)=sum(sum(L==i)); %计算每个连通区域的面积
end
[B IX]=sort(s,'descend'); %面积从大到小排序
BWout=and(bw,L==IX(1)); %删除区域(除了面积最大的区域)
[n m] = size(I);
for ii = 1:n
for jj = 1:m
if(BWout(ii,jj)==0)
RGB(ii,jj,1)=0;
RGB(ii,jj,2)=0;
RGB(ii,jj,3)=0;
end
end
end
figure;
imshow(RGB);
点击下载源代码
效果: