⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strcturelvbonew.m

📁 利用数学形态学构成形态学滤波器对图象进行滤波,处理效果较满意.
💻 M
字号:
function L=strcturelvbonew(I1)
 
%利用数学形态学对图像进行滤波;选用直线元素作为结构体,定义长度为3,5,角度分别为
%0,45,90,135的两种尺寸四种形状的结构体;
%将相同形状不同尺寸的结构体作为一类,共有四类结构体组,使用各类中的结构体对图像进行
%串联滤波,得到四幅滤波后的图像,将得到的四幅新图像分别乘以合适的权数后相加,这样
%得到的图像就是经过平滑后的新图像;权数分别定义为各类结构体插入图像中的次数除以总次
%数后得到的值;
 
%SE11,SE12,SE13,SE14  分别用来存储两种尺寸,四种形状的结构体组;
%w1,w2,w3,w4  分别定义为四个权数
%Fiend     经过平滑后的图像;
 
I11=I1;
I12=I1;
I13=I1;
I14=I1;
[x,y]=size(I1);                        %输入图像的尺寸定义为[x,y];
                                       
for j=3:2:5                            %定义第一种结构体组,由相角为0,长度为3,5
    SE11=strel('line',j,0);            %的两个结构体组成;并用这两个结构体对输入
    I11=imopen(I11,SE11);              %图像进行串联滤波;滤波后的图像定义为Ifilter1
    I11=imclose(I11,SE11);
end
Ifilter1=I11;                          
for j=3:2:5                            %定义第二种结构体组,由相角为45,长度为3,5
    SE12=strel('line',j,45);           %的两个结构体组成;利用这两个结构体进行串联
    I12=imopen(I12,SE12);              %滤波后的图像定义为Ifilter2;
    I12=imclose(I12,SE12);
end
Ifilter2=I12;
for j=3:2:5                            %定义第三种结构体组,由相角为90,长度为3,5
    SE13=strel('line',j,90);           %的两个结构体组成;利用这两个结构体进行串联
    I13=imopen(I13,SE13);              %滤波后的图像定义为Ifilter3;
    I13=imclose(I13,SE13);
end
Ifilter3=I13;
for j=3:2:5                           %定义第四种结构体组,由相角为135,长度为3,5
    SE14=strel('line',j,135);         %的两个结构体组成;利用这两个结构体进行串联
    I14=imopen(I14,SE14);             %滤波后的图像定义为Ifilter4;
    I14=imclose(I14,SE14);
end
Ifilter4=I14;
 
%计算权数;
%in1(1),in1(2),in1(3),in1(4)分别表示长度为3,相角为0,45,90,135的四种结构体插入图像
%的次数;
in1(1)=(y-3+1)*x;
in1(2)=(x-3+1)*(y-3+1);
in1(3)=y*(x-3+1);
in1(4)=in1(2);
%in2(1),in2(2),in2(3),in2(4)分别表示长度为5,相角为0,45,90,135的四种结构体插入图像
%的次数;
in2(1)=(y-5+1)*x;
in2(2)=(x-5+1)*(y-5+1);
in2(3)=y*(x-5+1);
in2(4)=in2(2);
sumin=sum(in1)+sum(in2);               %所有结构体插入图像的总次数;
%w1,w2,w3,w4分别表示四类串联滤波器的权数;
w1=(in1(1)+in2(1))/sumin;
w2=(in1(2)+in2(2))/sumin;
w3=(in1(3)+in2(3))/sumin;
w4=(in1(4)+in2(4))/sumin;
 
Iend=Ifilter1*w1+Ifilter2*w2+Ifilter3*w3+Ifilter4*w4;   
figure,imshow(Iend);
L=Iend;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -