衍射图样 fft 晶体学

问题描述 投票:0回答:1

我想反转(fft)我的衍射图案。

enter image description here

但输出始终是黑色图片,没有错误。

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)

我的代码有问题吗?

我实际上不知道我能做些什么。有人可以帮我吗?

python image numpy opencv fft
1个回答
0
投票

嗯,我不知道你期待什么样的结果,从图像的角度来看。但它不是黑色的。

我不知道 google collab 的

cv2_imshow
是做什么的。尤其是它如何“垂直”缩放数据。它是否期望从 0 到 1、或从 0 到 255 生成,或者它是否“自动缩放”它...... 所以也许这就是它看起来黑色的原因。但只要打印数据,你就会发现它并不全是0。

此外,问题的另一个根源是 C 很复杂。所以我不知道

cv2_imshow
是如何处理复数图像的。

这是C的实部和虚部

(使用 matplotlib 和颜色图

prism
进行查看,颜色变化很快,可以看到缓慢的渐变)

再说一次,我不知道谷歌协作的

cv2_imshow
。但我的猜测是,这只是一个观看问题。要么它不能处理复数。或者它使用固定范围的颜色图,无法处理数据的实际范围。或者颜色图的渐变太平滑,因此您没有注意到角落的细微变化。 但数据并不全为0。

© www.soinside.com 2019 - 2024. All rights reserved.