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

📄 tezh.m

📁 一个提取图像小波纹理特征和颜色特征的源码
💻 M
字号:
[x,map]=imread('Img242655712.jpg');
r=x(:,:,1);
g=x(:,:,2);
b=x(:,:,3);
%R
[ca1,ch1,cv1,cd1] = dwt2(r,'haar');  
[ca2,ch2,cv2,cd2] = dwt2(ca1,'haar');  
[ca3,ch3,cv3,cd3] = dwt2(ca2,'haar');  
[ca4,ch4,cv4,cd4] = dwt2(ca3,'haar');  
ch1s=size(ch1);
ch1m=0;
for i=1:ch1s(2)
ch1m=ch1m+ch1(i);
end
ch2s=size(ch2);
ch2m=0;
for i=1:ch2s(2)
ch2m=ch2m+ch2(i);
end
ch3s=size(ch3);
ch3m=0;
for i=1:ch3s(2)
ch3m=ch3m+ch3(i);
end
ch4s=size(ch4);
ch4m=0;
for i=1:ch4s(2)
ch4m=ch4m+ch4(i);
end
cv1s=size(cv1);
cv1m=0;
for i=1:cv1s(2)
cv1m=cv1m+cv1(i);
end
cv2s=size(cv2);
cv2m=0;
for i=1:cv2s(2)
cv2m=cv2m+cv2(i);
end
cv3s=size(cv3);
cv3m=0;
for i=1:cv3s(2)
cv3m=cv3m+cv3(i);
end
cv4s=size(cv4);
cv4m=0;
for i=1:cv4s(2)
cv4m=cv4m+cv4(i);
end
cd1s=size(cd1);
cd1m=0;
for i=1:cd1s(2)
cd1m=cd1m+cd1(i);
end
cd2s=size(cd2);
cd2m=0;
for i=1:cd2s(2)
cd2m=cd2m+cd2(i);
end
cd3s=size(cd3);
cd3m=0;
for i=1:cd3s(2)
cd3m=cd3m+cd3(i);
end
cd4s=size(cd4);
cd4m=0;
for i=1:cd4s(2)
cd4m=cd4m+cd4(i);
end
Tr=[ch1m,ch2m,ch3m,ch4m,cv1m,cv2m,cv3m,cv4m,cd1m,cd2m,cd3m,cd4m];
Tm=ch1m+ch2m+ch3m+ch4m+cv1m+cv2m+cv3m+cv4m+cd1m+cd2m+cd3m+cd4m;
Trr=Tr/Tm;

%G
[ca1,ch1,cv1,cd1] = dwt2(g,'haar');  
[ca2,ch2,cv2,cd2] = dwt2(ca1,'haar');  
[ca3,ch3,cv3,cd3] = dwt2(ca2,'haar');  
[ca4,ch4,cv4,cd4] = dwt2(ca3,'haar');  
ch1s=size(ch1);
ch1m=0;
for i=1:ch1s(2)
ch1m=ch1m+ch1(i);
end
ch2s=size(ch2);
ch2m=0;
for i=1:ch2s(2)
ch2m=ch2m+ch2(i);
end
ch3s=size(ch3);
ch3m=0;
for i=1:ch3s(2)
ch3m=ch3m+ch3(i);
end
ch4s=size(ch4);
ch4m=0;
for i=1:ch4s(2)
ch4m=ch4m+ch4(i);
end
cv1s=size(cv1);
cv1m=0;
for i=1:cv1s(2)
cv1m=cv1m+cv1(i);
end
cv2s=size(cv2);
cv2m=0;
for i=1:cv2s(2)
cv2m=cv2m+cv2(i);
end
cv3s=size(cv3);
cv3m=0;
for i=1:cv3s(2)
cv3m=cv3m+cv3(i);
end
cv4s=size(cv4);
cv4m=0;
for i=1:cv4s(2)
cv4m=cv4m+cv4(i);
end
cd1s=size(cd1);
cd1m=0;
for i=1:cd1s(2)
cd1m=cd1m+cd1(i);
end
cd2s=size(cd2);
cd2m=0;
for i=1:cd2s(2)
cd2m=cd2m+cd2(i);
end
cd3s=size(cd3);
cd3m=0;
for i=1:cd3s(2)
cd3m=cd3m+cd3(i);
end
cd4s=size(cd4);
cd4m=0;
for i=1:cd4s(2)
cd4m=cd4m+cd4(i);
end
Tr=[ch1m,ch2m,ch3m,ch4m,cv1m,cv2m,cv3m,cv4m,cd1m,cd2m,cd3m,cd4m];
Tm=ch1m+ch2m+ch3m+ch4m+cv1m+cv2m+cv3m+cv4m+cd1m+cd2m+cd3m+cd4m;
Tgg=Tr/Tm;

%b
[ca1,ch1,cv1,cd1] = dwt2(b,'haar');  
[ca2,ch2,cv2,cd2] = dwt2(ca1,'haar');  
[ca3,ch3,cv3,cd3] = dwt2(ca2,'haar');  
[ca4,ch4,cv4,cd4] = dwt2(ca3,'haar');  
ch1s=size(ch1);
ch1m=0;
for i=1:ch1s(2)
ch1m=ch1m+ch1(i);
end
ch2s=size(ch2);
ch2m=0;
for i=1:ch2s(2)
ch2m=ch2m+ch2(i);
end
ch3s=size(ch3);
ch3m=0;
for i=1:ch3s(2)
ch3m=ch3m+ch3(i);
end
ch4s=size(ch4);
ch4m=0;
for i=1:ch4s(2)
ch4m=ch4m+ch4(i);
end
cv1s=size(cv1);
cv1m=0;
for i=1:cv1s(2)
cv1m=cv1m+cv1(i);
end
cv2s=size(cv2);
cv2m=0;
for i=1:cv2s(2)
cv2m=cv2m+cv2(i);
end
cv3s=size(cv3);
cv3m=0;
for i=1:cv3s(2)
cv3m=cv3m+cv3(i);
end
cv4s=size(cv4);
cv4m=0;
for i=1:cv4s(2)
cv4m=cv4m+cv4(i);
end
cd1s=size(cd1);
cd1m=0;
for i=1:cd1s(2)
cd1m=cd1m+cd1(i);
end
cd2s=size(cd2);
cd2m=0;
for i=1:cd2s(2)
cd2m=cd2m+cd2(i);
end
cd3s=size(cd3);
cd3m=0;
for i=1:cd3s(2)
cd3m=cd3m+cd3(i);
end
cd4s=size(cd4);
cd4m=0;
for i=1:cd4s(2)
cd4m=cd4m+cd4(i);
end
Tr=[ch1m,ch2m,ch3m,ch4m,cv1m,cv2m,cv3m,cv4m,cd1m,cd2m,cd3m,cd4m];
Tm=ch1m+ch2m+ch3m+ch4m+cv1m+cv2m+cv3m+cv4m+cd1m+cd2m+cd3m+cd4m;
Tbb=Tr/Tm;
Ti=[Trr,Tgg,Tbb];

%提取颜色特征向量
rg=imsubtract(r,g);
gb=imsubtract(g,b);
rb=imsubtract(r,b);
[mhsr,x]=imhist(r);
[mhsg,x]=imhist(g);
[mhsb,x]=imhist(b);
[mhsrg,x]=imhist(rg);
[mhsgb,x]=imhist(gb);
[mhsrb,x]=imhist(rb);
mhsr1=0;
mhsr2=0;
mhsr3=0;
mhsr4=0;
mhsr5=0;
mhsr6=0;
for i=1:255
    if and(i<43,i>0)
    mhsr1=mhsr1+mhsr(i);
    end
    if and(i<85,i>=43)
    mhsr2=mhsr2+mhsr(i);
    end
    if and(i<128,i>=85)
    mhsr3=mhsr3+mhsr(i);
    end
    if and(i<170,i>=128)
    mhsr4=mhsr4+mhsr(i);
    end
    if and(i<213,i>=170)
    mhsr5=mhsr5+mhsr(i);
       end
       if and(i<=255,i>=213)
    mhsr6=mhsr6+mhsr(i);
       end
end
Mhr=mhsr1+mhsr2+mhsr3+mhsr4+mhsr5+mhsr6;
Cr=[mhsr1,mhsr2,mhsr3,mhsr4,mhsr5,mhsr6]/Mhr;

mhsg1=0;
mhsg2=0;
mhsg3=0;
mhsg4=0;
mhsg5=0;
mhsg6=0;
for i=1:255
    if and(i<43,i>0)
    mhsg1=mhsg1+mhsg(i);
    end
    if and(i<85,i>=43)
    mhsg2=mhsg2+mhsg(i);
    end
    if and(i<128,i>=85)
    mhsg3=mhsg3+mhsg(i);
    end
    if and(i<170,i>=128)
    mhsg4=mhsg4+mhsg(i);
    end
    if and(i<213,i>=170)
    mhsg5=mhsg5+mhsg(i);
       end
       if and(i<=255,i>=213)
    mhsg6=mhsg6+mhsg(i);
       end
end
Mhg=mhsg1+mhsg2+mhsg3+mhsg4+mhsg5+mhsg6;
Cg=[mhsg1,mhsg2,mhsg3,mhsg4,mhsg5,mhsg6]/Mhg;

mhsb1=0;
mhsb2=0;
mhsb3=0;
mhsb4=0;
mhsb5=0;
mhsb6=0;
for i=1:255
    if and(i<43,i>0)
    mhsb1=mhsb1+mhsb(i);
    end
    if and(i<85,i>=43)
    mhsb2=mhsb2+mhsb(i);
    end
    if and(i<128,i>=85)
    mhsb3=mhsb3+mhsb(i);
    end
    if and(i<170,i>=128)
    mhsb4=mhsb4+mhsb(i);
    end
    if and(i<213,i>=170)
    mhsb5=mhsb5+mhsb(i);
       end
       if and(i<=255,i>=213)
    mhsb6=mhsb6+mhsb(i);
       end
end
Mhb=mhsb1+mhsb2+mhsb3+mhsb4+mhsb5+mhsb6;
Cb=[mhsb1,mhsb2,mhsb3,mhsb4,mhsb5,mhsb6]/Mhb;       

mhsrg1=0;
mhsrg2=0;
mhsrg3=0;
mhsrg4=0;
mhsrg5=0;
mhsrg6=0;
for i=1:255
    if and(i<43,i>0)
    mhsrg1=mhsrg1+mhsrg(i);
    end
    if and(i<85,i>=43)
    mhsrg2=mhsrg2+mhsrg(i);
    end
    if and(i<128,i>=85)
    mhsrg3=mhsrg3+mhsrg(i);
    end
    if and(i<170,i>=128)
    mhsrg4=mhsrg4+mhsrg(i);
    end
    if and(i<213,i>=170)
    mhsrg5=mhsrg5+mhsrg(i);
       end
       if and(i<=255,i>=213)
    mhsrg6=mhsrg6+mhsrg(i);
       end
end
Mhrg=mhsrg1+mhsrg2+mhsrg3+mhsrg4+mhsrg5+mhsrg6;
Crg=[mhsrg1,mhsrg2,mhsrg3,mhsrg4,mhsrg5,mhsrg6]/Mhrg;       

mhsgb1=0;
mhsgb2=0;
mhsgb3=0;
mhsgb4=0;
mhsgb5=0;
mhsgb6=0;
for i=1:255
    if and(i<43,i>0)
    mhsgb1=mhsgb1+mhsgb(i);
    end
    if and(i<85,i>=43)
    mhsgb2=mhsgb2+mhsgb(i);
    end
    if and(i<128,i>=85)
    mhsgb3=mhsgb3+mhsgb(i);
    end
    if and(i<170,i>=128)
    mhsgb4=mhsgb4+mhsgb(i);
    end
    if and(i<213,i>=170)
    mhsgb5=mhsgb5+mhsgb(i);
       end
       if and(i<=255,i>=213)
    mhsgb6=mhsgb6+mhsgb(i);
       end
end
       Mhgb=mhsgb1+mhsgb2+mhsgb3+mhsgb4+mhsgb5+mhsgb6;
Cgb=[mhsgb1,mhsgb2,mhsgb3,mhsgb4,mhsgb5,mhsgb6]/Mhgb;

mhsrb1=0;
mhsrb2=0;
mhsrb3=0;
mhsrb4=0;
mhsrb5=0;
mhsrb6=0;
for i=1:255
    if and(i<43,i>0)
    mhsrb1=mhsrb1+mhsrb(i);
    end
    if and(i<85,i>=43)
    mhsrb2=mhsrb2+mhsrb(i);
    end
    if and(i<128,i>=85)
    mhsrb3=mhsrb3+mhsrb(i);
    end
    if and(i<170,i>=128)
    mhsrb4=mhsrb4+mhsrb(i);
    end
    if and(i<213,i>=170)
    mhsrb5=mhsrb5+mhsrb(i);
       end
       if and(i<=255,i>=213)
    mhsrb6=mhsrb6+mhsrb(i);
       end
end
       Mhrb=mhsrb1+mhsrb2+mhsrb3+mhsrb4+mhsrb5+mhsrb6;
Crb=[mhsrb1,mhsrb2,mhsrb3,mhsrb4,mhsrb5,mhsrb6]/Mhrb;
Ci=[Cr,Cg,Cb,Crg,Cgb,Crb];
T=[Ti,Ci]

⌨️ 快捷键说明

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