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

📄 func_dwt.asv

📁 小波图象分割!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!MATLAB原程序
💻 ASV
字号:
function [E_W , S] = func_DWT(I, level, Lo_D, Hi_D);
mm=mean(I(:));

% best direction information
a=zeros(17,17);
a(1:16,1:16)=I;
for ii=17
    jj=1:16;
      a(ii,jj)=I(16,jj);
end
p=17;
 a(:,17)=a(:,16);
% Subtract the DC component
m = mean(a(:));
a = a - m;
% Normalize for unit norm
m = 17 * m;
% Finite Radon transform
ra = frat(a);% The maxtrix of radon transoform  will be P by P+1
yy=sum(ra.^2);

for zz=1:p+1
   if max(yy)==yy(zz)
      break;
   end
end
M = bestdir(p);
if(sqrt(sum((yy-mean(yy(:))).^2))>=0.3)
       max_direc=M(:,zz);
       %direc=max_direc(1,1)/(sqrt(max_direc(2,1)^2+max_direc(1,1)^2));%direction information
       direc=zz;
else
        direc=-8;
end
%  


[C,S] = func_Mywavedec2(I,level,Lo_D,Hi_D); 

S(:,3) = S(:,1).*S(:,2);        % dim of detail coef nmatrices
number=level*3+1;
L = length(S);
I_W=zeros(S(1,1),S(1,2));
% approx part
I_W( 1:S(1,1) , 1:S(1,2) ) = reshape(C(1:S(1,3)),S(1,1:2));
e=mean(mean(abs(I_W)));
for k=2:L-1
    rows=S(k,1);
    columns=S(k,2);
    %horizontal part
    c_start = S(1,3) + 3*sum(S(2:k-1,3)) + 1;
    c_stop = S(1,3) + 3*sum(S(2:k-1,3)) + S(k,3);
   % I_W=zeros(1:S(k,1),1:S(k,2));
     I_W=zeros(S(k,1),S(k,2));
    I_W(1:rows,1:columns) = reshape( C(c_start:c_stop) , S(k,1:2) );
    e=[mean(mean(abs(I_W)));e];
    % vertical part
    c_start = S(1,3) + 3*sum(S(2:k-1,3)) + S(k,3) + 1;
    c_stop = S(1,3) + 3*sum(S(2:k-1,3)) + 2*S(k,3);
    I_W(1:rows,1:columns) =  reshape( C(c_start:c_stop) , S(k,1:2) );
       e=[mean(mean(abs(I_W)));e];
    % diagonal part
    c_start = S(1,3) + 3*sum(S(2:k-1,3)) + 2*S(k,3) + 1;
    c_stop = S(1,3) + 3*sum(S(2:k,3));
      I_W(1:rows,1:columns) =  reshape( C(c_start:c_stop) , S(k,1:2) );
     e=[mean(mean(abs(I_W)));e];
  end
E_W=[e;mm;direc];
max_e=max(E_W);
E_W=E_W/max_e;

⌨️ 快捷键说明

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