摘要:图像包括幅度和相位两种信息。相对于幅度(灰度/梯度)信息,相位信息在人类视觉感知系统中有非常重要的作用。相位信息有很多优良特性,稳定性高,符合人类视觉感知特性。
以下为相位信息重要的经典证明:
我们取两张图像,分别为手势1和手势2,如下图所示:
手势1
手势2
经过傅里叶变换,我们分别提取手势1和手势2的幅度谱和相位谱,之后我们把手势1的幅度谱和手势2的相位谱结合,把手势1的相位谱和手势2的幅度谱结合,最后经过傅里叶反变换。
Matlab程序及运行结果:
%读入图像
X=imread('E:\template\1.PNG');
Y=imread('E:\template\2.PNG');
%resize图像使图像维度一样
X=imresize(X,[140,190]);
Y=imresize(Y,[140,190]);
%转为灰度图
x = rgb2gray(X);
y = rgb2gray(Y);
% 傅里叶变换
xf=fft2(double(x));
yf=fft2(double(y));
%取幅度和相位
xf1=abs(xf);
xf2=angle(xf);
yf1=abs(yf);
yf2=angle(yf);
%交换相位
xfr=xf1.*cos(yf2)+xf1.*sin(yf2).*1i;
yfr=yf1.*cos(xf2)+yf1.*sin(xf2).*1i;
%傅里叶逆变换
xr=abs(ifft2(xfr));
yr=abs(ifft2(yfr));
%显示
figure(1)
subplot(2,2,1);imshow(x);title('x 灰度图');
subplot(2,2,2);imshow(y);title('y 灰度图');
subplot(2,2,3);imshow(xr,[]);title('x 幅度谱 与 y相位谱');
subplot(2,2,4);imshow(yr,[]);title('y 幅度谱 与 x相位谱');
figure(2)
subplot(2,2,1);imshow(xf1,[]);title('x 幅度谱');
subplot(2,2,2);imshow(yf1,[]);title('y 幅度谱');
subplot(2,2,3);imshow(xf2,[]);title('x 相位谱');
subplot(2,2,4);imshow(yf2,[]);title('y相位谱');
由结果可以看出:
手势1的幅度谱和手势2的相位谱相结合,最终显示的结果更加趋向于手势2;
手势1的相位谱和手势2的幅度谱相结合,最终显示的结果更加趋向于手势1;
所以,图像的相位信息是非常重要的。