计算复数的相位

时间:2017-09-14 16:06:04

标签: matlab image-processing

我有一个图像表示为复数矩阵,矩阵的大小为m×m

哪一种是计算图像相位的正确方法?

  1. angle / atan2

    Img_phase = angle(img);
    

    Img_phase = atan2 ( imag(img),real(img) );
    

    或两者都是正确的?

  2. 在计算相位之前是否需要进行傅里叶变换?

    img_fft = fftshift (fft2 (img) );
    

    然后

    Img_phase = angle(img_fft);
    

    Img_phase = atan2 ( imag(img_fft),real(img_fft) );
    
  3. 如果我有多张图像,在计算相位之前是否需要对图像进行标准化(除以最大值)?

  4. For example these images which represent the outputs of a simulation。更多信息可以在this link

    中找到

    我已将输出导出到matlab(作为复数矩阵)以进行更多处理。首先,我想计算我之前提到的阶段。

1 个答案:

答案 0 :(得分:0)

angle vs atan2

atan2(imag(img),real(img))angle(img)之间的差异非常明显:没有。检查angle的源代码:

function p = angle(h)

p = atan2(imag(h), real(h));

所以,你做任何你想做的事,但angle可能更容易理解。

我是否必须进行傅里叶变换?

这取决于图像的含义和你想要的东西。

我应该将图像标准化吗?

没关系。该角度不依赖于实际比例因子,即:

angle(1+3i) == angle(5*(1+3i))