Matlab保留ROI区域,并将非ROI区域颜色置0

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);

点击下载源代码
效果:
原图
处理后

  • 0
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值