numpy function .fft.fft2() giving an error: "cannot do a non-empty take from an empty axis" (opencv, matplotlib, numpy, python27)
numpy function .fft.fft2() giving an error: "cannot do a non-empty take from an empty axis" (opencv, matplotlib, numpy, python27)
我正在尝试根据我发现的 tutorial 对图像进行傅立叶变换。
当我尝试 运行 我的代码时出现以下错误:
Error
我在复制的教程中没有更改任何内容。所以我认为我的库有问题。我卸载了 Python 和所有库并重新安装。但错误仍然显示。
我的代码:
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('C:\Documents\data128.jpg',0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(img, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
我在 Windows 10 上使用 Python 2.7。感谢任何帮助!
出现错误是因为图片还没有载入。原因是找不到该文件。
您在 python 字符串中使用反斜杠指定文件名。然而,python 字符串中的反斜杠具有特殊含义,需要转义。另见 here。
可能的解决方案(假设文件确实存在):
转义反斜杠
img = cv2.imread('C:\Documents\data128.jpg',0)
使用原始字符串
img = cv2.imread(r'C:\Documents\data128.jpg',0)
使用单斜线
img = cv2.imread('C:/Documents/data128.jpg',0)
我正在尝试根据我发现的 tutorial 对图像进行傅立叶变换。
当我尝试 运行 我的代码时出现以下错误:
Error
我在复制的教程中没有更改任何内容。所以我认为我的库有问题。我卸载了 Python 和所有库并重新安装。但错误仍然显示。
我的代码:
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('C:\Documents\data128.jpg',0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(img, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
我在 Windows 10 上使用 Python 2.7。感谢任何帮助!
出现错误是因为图片还没有载入。原因是找不到该文件。
您在 python 字符串中使用反斜杠指定文件名。然而,python 字符串中的反斜杠具有特殊含义,需要转义。另见 here。
可能的解决方案(假设文件确实存在):
转义反斜杠
img = cv2.imread('C:\Documents\data128.jpg',0)
使用原始字符串
img = cv2.imread(r'C:\Documents\data128.jpg',0)
使用单斜线
img = cv2.imread('C:/Documents/data128.jpg',0)