如何在给定图像的精确像素位置上找到相位值?

信息处理 matlab 信号分析 傅里叶变换 小波 阶段
2022-02-02 09:34:34

我已经使用 fft 函数计算了摄影师灰度图像的幅度和相位谱。在这里,我们得到了整个图像的幅度和相位谱。.请参阅图像重建接受的答案中仅从相位重建图像的部分:相位与幅度 ,这表示在图像中,边缘、线和角的相邻像素是同相的所以我想在精确的像素上找到相位值

给定尺寸为 256*256 的图像,如何找到位置 (100,121)、(100,122) 和 (100,123) 处像素的相位值?

是否可以使用傅立叶变换?如果没有,其他方法是什么?任何人都可以用(或不用)代码来解释它吗?

在此处输入图像描述在此处输入图像描述

clc;
clear all;
close all;

i=imread('C:\Users\RK\Desktop\cameraman.gif');
%i=rgb2gray(i);
i=uint8(i);

figure,
subplot(1,3,1);imshow(i);
title('Cameraman Gray scale Image');

f1=fft2(i);
f2=log(1+fftshift(f1));


m=abs(f2);
subplot(1,3,2);
imshow(m,[]);
title('Magnitude Spectrum');  

phase=angle(f2);
subplot(1,3,3);a
imshow(phase,[]);
title('Phase Spectrum');
1个回答

由于不确定性原理,您无法找到给定像素的精确相位值。您只能使用短时傅里叶变换找到像素邻域的相位值。

如果您想知道像素 (100,100) 的相位,则必须取一个邻域,例如 (50:150,50:150) 并在此窗口上计算 2D 傅里叶变换。