【发布时间】:2019-05-25 10:23:33
【问题描述】:
我正在尝试获取图像的 fft,然后使用 matplotlib 绘制该 fft 的 fraq。但是,这个错误信息:
“ValueError:x 和 y 不能大于 2-D,但具有 (2592,) 和 (2592, 1, 3) 形状”。
我试图像这样重塑我的 np.array:
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import tkinter
from scipy.fftpack import fft, fft2, fftshift
resim = Image.open(r'yeni.jpg')
resim_data = np.asarray(resim)
fourier = fft2(resim_data)
#psd2D = np.abs(fourier)**2
plt.figure()
plt.semilogy(abs(fourier).astype(np.uint8))
plt.title('fourier transform fraq')
plt.show()
错误消息:
Traceback(最近一次调用最后一次):
文件“myfrouier.py”,第 21 行,在
plt.semilogy(abs(fourier).astype(np.uint8)) 文件
"/home/aybarsyldiz/.local/lib/python3.6/site-packages/matplotlib/pyplot.py",
第 2878 行,符号学 return gca().semilogy(*args, **kwargs)
文件“/home/aybarsyildiz/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py”, 第 1844 行,符号学 l = self.plot(*args, **kwargs) 文件“/home/aybarsyildiz/.local/lib/python3.6/site-packages/matplotlib/init.py”, 第 1810 行,在内部 返回函数(ax,*args,**kwargs)
文件“/home/aybarsyildiz/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py”, 第 1611 行,在情节中 对于 self._get_lines(*args, **kwargs) 中的行:
文件“/home/aybarsyildiz/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py”, 第 393 行,在 _grab_next_args 来自 self._plot_args(this, kwargs) 文件“/home/aybarsyildiz/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py”, 第 370 行,在 _plot_args x, y = self._xy_from_xy(x, y) 文件“/home/aybarsyildiz/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py”, 第 234 行,在 _xy_from_xy "形状 {} 和 {}".format(x.shape, y.shape)) ValueError: x 和 y 不能大于 2-D,但具有 (2592,) 和 (2592, 1, 3) 形状
【问题讨论】:
-
错误似乎很明显。
y的形状是(2592, 1, 3),你需要一个二维数组
标签: python python-3.x matplotlib image-processing fft