我想把一幅图像的相位谱和不同图像的幅度谱合成一幅图像。在
得到了A、B图像的相位谱和幅度谱
这是密码。在
f = np.fft.fft2(grayA)
fshift1 = np.fft.fftshift(f)
phase_spectrumA = np.angle(fshift1)
magnitude_spectrumB = 20*np.log(np.abs(fshift1))
f2 = np.fft.fft2(grayB)
fshift2 = np.fft.fftshift(f2)
phase_spectrumB = np.angle(fshift2)
magnitude_spectrumB = 20*np.log(np.abs(fshift2))
我想弄明白,但还是不知道该怎么做。在
下面是我的测试代码。在
^{pr2}$我希望我能像那样出来
为了使代码按预期工作,您需要修复以下几点:
*
运算符将尝试执行矩阵乘法。在您的例子中,您希望执行元素级乘法,这可以用^{通过这些修正,您应该得到如下所示的频域组合矩阵:
为了获得相应的空间域图像,您需要计算反变换(由于数值误差,可能会有剩余的小虚部,所以取实部):
^{pr2}$最后,结果可显示为:
请注意,
imgCombined
可能包含[0,1]
范围之外的值。然后,您需要决定如何重新缩放值以适应预期的[0,1]
范围。在imgCombined = np.abs(imgCombined)
获取绝对值,这似乎提供了更接近所提供的屏幕截图的结果相关问题 更多 >
编程相关推荐