BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #8970同步于 2012/4/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

显示Error: Missing variable or function.这是错哪了?我应该

QQ729859186
2012/4/24镜像同步3 回复
新手,望指教。。。不胜感激
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
QQ729859186机器人#1 · 2012/4/24
不知道改什么?忘大神指教
QQ729859186机器人#2 · 2012/4/24
%function Gabor_wavelet(m,n) % m指定滤波器的尺度 % n指定滤波器的方向 Image = imread('D1.gif');%读入示例图像 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %提取示例图像的纹理特征 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% width=6; [x,y]=meshgrid(-width:width,-width:width); M=5; % M表示总共有5个尺度 N=6; % N表示总共有6个方向 for m=1:M for n=1:N Uh=0.4; Ul=0.05; a=(Uh/Ul).^(-1/(M-1)); sigma_x=(a+1)*sqrt(2*log(2))/(2*pi*a.^m*(a-1)*Ul); sigma_y=1/(2*pi*tan(pi/2*N)*sqrt(Uh.^2/2*log(2)-(1/2*pi*sigma_x).^2)); % W=a.^m*Ul; % Uh=pi/0.2; % Ul=Uh/8; % a=(Uh/Ul).^(-1/(M-1)); %sigma_u=(a-1)*Uh/((a+1)*sqrt(2*log(2))); %sigma_v=tan(pi/(2*N))*(Uh-2*log(2)*sigma_u.^2/Uh)*(2*log(2)-(2*log(2)).^2*sigma_u.^2/Uh.^2).^(-1/2); %sigma_u=1/(2*pi*sigma_x); %sigma_v=1/(2*pi*sigma_y); W=0.5; theta=n*pi/N; % 指定滤波器的方向 xx=a.^(-m)*(x*cos(theta)+y*sin(theta)); yy=a.^(-m)*(-x*sin(theta)+y*cos(theta)); gabor=a.^(-m)/(2*pi*sigma_x*sigma_y)*exp(-(xx.^2/sigma_x.^2+yy.^2/sigma_y.^2)/2)*exp(2*pi*sqrt(-1)*W*xx); gabor1=conj(gabor); G= conv2(Image,gabor1); Gabor=abs(G); E1=sum(sum(Gabor)); miu=E1/(M*N); sigema=sqrt(sum(sum((Gabor-miu)*(Gabor-miu))))/(M*N); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %示例图像的30个均值,30个方差,即:示例图像的纹理特征 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MIU1(m*n)=miu; SIGEMA1(m*n)=sigema; end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %循环读入图像 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% A=dir('F:\wenliku\*.gif'); for k=1:size(A) B=strcat('\wenliku\',A(k).name); Image=imread(B); width=6; [x,y]=meshgrid(-width:width,-width:width); M=5; % M表示总共有5个尺度 N=6; % N表示总共有6个方向 for m=1:M for n=1:N Uh=0.4; Ul=0.05; a=(Uh/Ul).^(-1/(M-1)); sigma_x=(a+1)*sqrt(2*log(2))/(2*pi*a.^m*(a-1)*Ul); sigma_y=1/(2*pi*tan(pi/2*N)*sqrt(Uh.^2/2*log(2)-(1/2*pi*sigma_x).^2)); % W=a.^m*Ul; % Uh=pi/0.2; % Ul=Uh/8; % a=(Uh/Ul).^(-1/(M-1)); %sigma_u=(a-1)*Uh/((a+1)*sqrt(2*log(2))); %sigma_v=tan(pi/(2*N))*(Uh-2*log(2)*sigma_u.^2/Uh)*(2*log(2)-(2*log(2)).^2*sigma_u.^2/Uh.^2).^(-1/2); %sigma_u=1/(2*pi*sigma_x); %sigma_v=1/(2*pi*sigma_y); W=0.5; theta=n*pi/N; % 指定滤波器的方向 xx=a.^(-m)*(x*cos(theta)+y*sin(theta)); yy=a.^(-m)*(-x*sin(theta)+y*cos(theta)); gabor=a.^(-m)/(2*pi*sigma_x*sigma_y)*exp(-(xx.^2/sigma_x.^2+yy.^2/sigma_y.^2)/2)*exp(2*pi*sqrt(-1)*W*xx); gabor1=conj(gabor); G= conv2(Image,gabor1); Gabor=abs(G); E1=sum(sum(Gabor)); miu=E1/(M*N); sigema=sqrt(sum(sum((Gabor-miu)*(Gabor-miu))))/(M*N); MIU(m*n)=miu; SIGEMA(m*n)=sigema; end end diff1 = MIU1-MIU; diff2 = SIGEMA1-SIGEMA; EulerDistance = sqrt( sum([sum( diff1(:).*diff1(:)),sum( diff2(:).*diff2(:))])); w(k)=EulerDistance; end %-------------------------------------------------------------------------- %按纹理的相似性显示图片 %-------------------------------------------------------------------------- [B,IX]=sort(w,2); A=dir('F:\wenliku\*.gif'); for n=1:12 subplot(3,4,n); I=imread(strcat('\wenliku\',A(IX(n)).name)); imshow(I); end
QQ729859186机器人#3 · 2012/4/24
希望大神给调调代码,不胜感激。。。。