回 帖 发 新 帖 刷新版面

主题:提取图中的轮廓线

别无他求,怎么才能完整无缺的把轮廓线给提取出来(本人曾经努力过,但得到的轮廓线残缺不全,而且 还有很多杂乱的噪声留下) 图片我上传了,希望好心人 耐心的看看
以下我把我自己的算法帖出(效果很不理想,但是值得交流)
RGB=imread('d:/test.bmp');
I=rgb2gray(RGB);%转换成灰度图象
BW1=im2bw(I);%转换成2值图象
se=strel('disk',1);
BW2=imerode(BW1,se);%腐蚀2值图象
BW3=imdilate(BW2,se)%膨胀图象
BW=BW1-BW3;%原二值图象减腐蚀后膨胀图象得到图象二值轮廓线
se=strel('disk',5);%2次降噪
BWCLOSE=imclose(BW,se);
se=strel('disk',2);
FUSHI=imerode(BWCLOSE,se);
BW4=BW-FUSHI;
figure,imshow(BW4);


%去噪处理
i=0;
j=0;
x=0;
y=0

for i=1:422
    for j=1:569
        if BW4(i,j)+BW4(i,j+1)+BW4(i,j+2)+BW4(i,j+3)+BW4(i,j+4)+BW4(i,j+5)+BW4(i,j+6)+BW4(i+1,j)+BW4(i+2,j)+BW4(i+3,j)+BW4(i+3,j+1)+BW4(i+3,j+2)+BW4(i+3,j+3)+BW4(i+3,j+4)+BW4(i+3,j+5)+BW4(i+3,j+6)+BW4(i+2,j+6)+BW4(i+1,j+6)==0
             BW4(i+1,j+1)=0;BW4(i+1,j+2)=0;BW4(i+1,j+3)=0;BW4(i+1,j+4)=0; BW4(i+1,j+5)=0;BW4(i+2,j+1)=0;BW4(i+2,j+2)=0;BW4(i+2,j+3)=0;BW4(i+2,j+4)=0;BW4(i+2,j+5)=0;
        end
    end
end

figure,imshow(BW4);

回复列表 (共1个回复)

沙发

^_^

我来回复

您尚未登录,请登录后再回复。点此登录或注册