我有一个图像表示为复数矩阵,矩阵的大小为m×m
。
哪一种是计算图像相位的正确方法?
angle
/ atan2
Img_phase = angle(img);
或
Img_phase = atan2 ( imag(img),real(img) );
或两者都是正确的?
在计算相位之前是否需要进行傅里叶变换?
img_fft = fftshift (fft2 (img) );
然后
Img_phase = angle(img_fft);
或
Img_phase = atan2 ( imag(img_fft),real(img_fft) );
如果我有多张图像,在计算相位之前是否需要对图像进行标准化(除以最大值)?
For example these images which represent the outputs of a simulation。更多信息可以在this link
中找到我已将输出导出到matlab(作为复数矩阵)以进行更多处理。首先,我想计算我之前提到的阶段。
答案 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))