Matlab Gabor相??我的价值太小了

Matlab Gabor相??我的价值太小了,matlab,matlab-compiler,time-frequency,Matlab,Matlab Compiler,Time Frequency,大家好>>希望大家都过得很好 我想问你关于计算图像相位值的问题,你看,我使用了Gabor wavlet,如下所示: k = ( Kmax / ( f ^ v ) ) * exp( 1i * u * pi / 8 );% Wave Vector kn2 = ( abs( k ) ) ^ 2; GW = zeros ( R , C ); for m = -R/2 + 1 : R/2 for n = -C/2 + 1 : C/2 GW(m+R/2,n+C/2)

大家好>>希望大家都过得很好

我想问你关于计算图像相位值的问题,你看,我使用了Gabor wavlet,如下所示:

k = ( Kmax / ( f ^ v ) ) * exp( 1i * u * pi / 8 );% Wave Vector

kn2 = ( abs( k ) ) ^ 2;

GW = zeros ( R , C );

for m = -R/2 + 1 : R/2

       for n = -C/2 + 1 : C/2 

        GW(m+R/2,n+C/2) = ( kn2 / Delt2 ) * exp( -0.5 * kn2 * ( m ^ 2 + n ^ 2 ) / Delt2) * ( exp( 1i * ( real( k ) * m + imag ( k ) * n ) ) - exp ( -0.5 * Delt2 ) );

    end
end
I=imread('a.pgm');

Myimage=conv2(I,double(GW),'same');
然后我用不同的方向和比例调用图像和过滤器,并将相位存储在p中,然后我想用范围4 I对其进行量化:

close all;
clear all;
clc;

% Parameter Setting

R = 32;
C = 32;
Kmax = pi;
f = sqrt( 2 );
Delt = 2 * pi;
Delt2 = Delt * Delt;

% Show the Gabor Wavelets

for v=1:7 %v = 1 : 7
    for u = 1:5 % u= 1: 5

        [GW,Myimage]= GaborWavelet ( R, C, Kmax, f, u, v, Delt2 ); % Create the Gabor wavelets
       figure;
        subplot( 5, 8, v * 7 + u ),imshow ( real( GW ) ,[]); % Show the real part of Gabor wavelets

    end
   figure ;
    subplot( 1, 5, v + 1 ),imshow ( abs( GW ),[]); % Show the magnitude of Gabor wavelets
end


%clear I;
R=real(GW);

I=imag(GW);

M=abs(Myimage);

P=atan(imag(Myimage)/real(Myimage)); <<<< is this even right ??


%P=atan(I/R);

save P P;

[xx,yy] = size (P);

DATA =zeros(size(P));

for i=1:48
    for j=1:48
        for zz=1:3
           if (360* zz/4) <= abs(P(i,j))&& abs(P(i,j))<(360*(zz+1)/4) 
                 DATA(i,j)=zz ; end;


        end;
    end;
end;
save DATA DATA ;
全部关闭;
清除所有;
clc;
%参数设置
R=32;
C=32;
Kmax=pi;
f=sqrt(2);
Delt=2*pi;
Delt2=Delt*Delt;
%显示Gabor小波
对于v=1:7%v=1:7
对于u=1:5%u=1:5
[GW,Myimage]=GaborWavelet(R,C,Kmax,f,u,v,Delt2);%创建Gabor小波
图形
子地块(5,8,v*7+u),imshow(真实(GW),[]);%显示Gabor小波的实部
结束
图形
子地块(1,5,v+1),imshow(abs(GW),[]);%显示Gabor小波的大小
结束
%清晰I;
R=实际值(GW);
I=imag(GW);
M=abs(Myimage);

P=atan(imag(Myimage)/real(Myimage)) 我认为这些值看起来很小,因为它们是以弧度表示的,而你期望它们是以度表示的。至于得到复数的大小和角度,请看一看

我引述:

对于复Z,幅值R和相位角θ由下式给出:

R=abs(Z)

θ=角度(Z)”

Z将是您的GW


希望这有帮助

我认为这些值看起来很小,因为它们是以弧度表示的,而你期望它们是以度表示的。至于得到复数的大小和角度,请看一看

我引述:

对于复Z,幅值R和相位角θ由下式给出:

R=abs(Z)

θ=角度(Z)”

Z将是您的GW


希望这有帮助

我认为,在普通的matlab用户能够帮助您之前,您需要添加更多的解释。例如:直到什么时候程序才能达到你的期望?当它的行为不符合预期时,它会做什么?你到底期望什么?我认为你需要添加更多的解释,然后普通的matlab用户才能帮助你。例如:直到什么时候程序才能达到你的期望?当它的行为不符合预期时,它会做什么?你到底期望什么?