• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: Matlab
  • 标签: matlab  形态学  变换  

资源简介

初步版本,没有写成通用函数形式,程序中也没什么说明 实验内容 编制通用的二值形态学运算(腐蚀和膨胀、开、闭和击中击不中变换)函数; 函数可以处理不同的变换形式和不同类型的结构元素。 实验检查 读入任意二值图象,根据给定的结构元素和算子,输出变换后图象。 实验测试图象 二值图象由一段文字组成,word_bw.bmp

资源截图

代码片段和文件信息

img = imread(‘word_bw.bmp‘);
[rowcol]=size(img);
img1=zeros(rowcol);
B=[01;0-1;10;-10;];
[b_rowb_col]=size(B);
for i=1:row
    for j=1:col
        if(img(ij)==1)
            for m=1:b_row                
                img1(i+B(m1)j+B(m2))=1;
            end
        end
    end
end
subplot(221);
imshow(img1);

img2=zeros(rowcol);
for i=1:row
    for j=1:col
        img2(ij)=1;
        for m=1:b_row                
            if(i+B(m1)>row||j+B(m2)>col||i+B(m1)<1||j+B(m2)<1)
            elseif(img(i+B(m1)j+B(m2))~=1)
                img2(ij)=0;
            end
        end
    end
end
subplot(222);
imshow(img2);

img3=zeros(rowcol);
for i=1:row
    for j=1:col
        if(img2(ij)==1)
            for m=1:b_row                
                img3(i+B(m1)j+B(m2))=1;
            end
        end
    end
end
subplot(223);
imshow(img3);

img4=zeros(rowcol);
for i=1:row
    for j=1:col
        img4(ij)=1;
        for m=1:b_row                
            if(i+B(m1)>row||j+B(m2)>col||i+B(m1)<1||j+B(m2)<1)
            elseif(img1(i+B(m1)j+B(m2))~=1)
                img4(ij)=0;
            end
        end
    end
end
subplot(224);
imshow(img4);


img = imread(‘square_bw.bmp‘);
figure;
subplot(121);
imshow(img);
[rowcol]=size(img);
img5=zeros(rowcol);
B=[-1-1;-10;-11;0-1;00;01;1-1;10;11];
[b_rowb_col]=size(B);
for i=1:row
    for j=1:col
        img5(ij)=1;
        for m=1:b_row                
            if(i+B(m1)>row||j+B(m2)>col||i+B(m1)<1||j+B(m2)<1)
            elseif(img(i+B(m1)j+B(m2))~=1)
                img5(ij)=0;
            end
        end
    end
end
for i=1:row
    for j=1:col
        if(img(ij)==1)
            img(ij)=0;
        else
            img(ij)=1;
        end
    end
end
img6=zeros(rowcol);
B=[-2-2;-2-1;-20;-21;-22;-1-2;0-2;1-2;2-2;-12;02;12;22;21;20;2-1];
[b_rowb_col]=size(B);
for i=1:row
    for j=1:col
        img6(ij)=1;
        for m=1:b_row                
            if(i+B(m1)>row||j+B(m2)>col||i+B(m1)<1||j+B(m2)<1)
            elseif(img(i+B(m1)j+B(m2))~=1)
                img6(ij)=0;
            end
        end
    end
end
img7=zeros(rowcol);
for i=1:row
    for j=1:col
        if(img5(ij)==1&&img6(ij)==1)
            img7(ij)=1;
        end
    end
end

subplot(122);
imshow(img7);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8254  2008-04-10 00:00  word_bw.bmp

     文件       2462  2009-04-09 14:55  Exercise_5.m

     文件       8254  2009-04-09 14:24  square_bw.bmp

----------- ---------  ---------- -----  ----

                18970                    3


评论

共有 条评论