我在尝试将图像转换成快速傅立叶变换信号时,使用了下面的代码:
fake_A1 = tf.signal.fft2d(fake_A1)
其中输入图像类型为:〈class 'numpy.ndarray'〉但我得到以下错误:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Value for attr 'Tcomplex' of float is not in the list of allowed values: complex64, complex128
; NodeDef: {{node FFT2D}}; Op<name=FFT2D; signature=input:Tcomplex -> output:Tcomplex; attr=Tcomplex:type,default=DT_COMPLEX64,allowed=[DT_COMPLEX64, DT_COMPLEX128]> [Op:FFT2D]
我该怎么解决呢?
2条答案
按热度按时间yr9zkbsy1#
P.S.:如果你想做编辑,那么就在你的问题上做,而不是作为答案。
现在进入正题:图像的2D FFT。首先,图像具有以下形状:
其中3代表3个2维矩阵,对应于RGB。因此,要执行2D FFT,我们首先需要通过将其转换为灰度级来将其平坦化。我在这里找到了一个关于ThePythonCodingBook的有用教程。我将在这里添加用于TL:DR目的的代码。
我还将添加灰度图和FFT图。
希望这对你有帮助。
7jmck4yq2#
代替tensorflow 转换器,我们可以替换:fake_A1 = tf.signal.fft2d(fake_A1)转换为以下代码: