用于傅里叶变换的灰度图像到NumPy阵列

ade*_*rtc 7 python numpy fft image-processing python-imaging-library

目前我正在使用PIL和NumPy.我有一个彩色png图像,我想:

  1. 以灰度读取
  2. 转换为NumPy数组
  3. 在阵列上执行FFT
  4. 显示图像

这就是我正在尝试的(在IPython w/--pylabflag中):

In [1]: import Image

In [2]: img = Image.open('ping.png').convert('LA')

In [3]: img_as_np = np.asarray(img)

In [4]: img_as_np
Out[4]: array(<Image.Image image mode=LA size=1000x1000 at 0x105802950>, dtype=object)

In [5]: img_fft = fft.fft2(img_as_np) // IndexError: index out of range for array
Run Code Online (Sandbox Code Playgroud)

Jus*_*eel 5

您希望使用模式“L”而不是“LA”作为 Convert() 方法的参数。'LA' 留下一个 alpha 通道,然后 numpy.asarray 无法按您的预期工作。如果您需要 alpha 通道,那么您将需要一种不同的方法来转换为 numpy 数组。否则,使用模式“L”。