我想反转(fft)我的衍射图案。
但输出始终是黑色图片,没有错误。
import cv2
from google.colab.patches import cv2_imshow
import numpy as np
A = cv2.imread(“picture.png“, cv2.IMREAD_GRAYSCALE)
B = np.fft.ifftshift(A)
C = np.fft.ifft2(B)
cv2_imshow(C)
我的代码有问题吗?
我实际上不知道我能做些什么。有人可以帮我吗?
嗯,我不知道你期待什么样的结果,从图像的角度来看。但它不是黑色的。
我不知道 google collab 的
cv2_imshow
是做什么的。尤其是它如何“垂直”缩放数据。它是否期望从 0 到 1、或从 0 到 255 生成,或者它是否“自动缩放”它......
所以也许这就是它看起来黑色的原因。但只要打印数据,你就会发现它并不全是0。
此外,问题的另一个根源是 C 很复杂。所以我不知道
cv2_imshow
是如何处理复数图像的。
这是C的实部和虚部
(使用 matplotlib 和颜色图
prism
进行查看,颜色变化很快,可以看到缓慢的渐变)
再说一次,我不知道谷歌协作的
cv2_imshow
。但我的猜测是,这只是一个观看问题。要么它不能处理复数。或者它使用固定范围的颜色图,无法处理数据的实际范围。或者颜色图的渐变太平滑,因此您没有注意到角落的细微变化。
但数据并不全为0。