我正在探索SimpleCV,它是Python语言中的一个图像库,看起来非常不错。然而,我对如何在SimpleCV中对图像执行快速傅立叶变换感到困惑。看起来我必须先转换成numpy数组,然后再使用numpy工具:
import SimpleCV as SV
im = Image('image.png')
img = im.getGrayNumpy()
imf = np.fft.fftshift(np.fft.fft2(img))
plt.imshow(log(abs(imf)+1),cmap=cm.gray)或者这是最好的方式?当然,如果我想将快速傅立叶变换频谱的对数转换成SimpleCV图像供以后使用,那就是另一个问题了。
发布于 2014-07-25 22:24:10
您可以使用Image()构造函数将numpy矩阵带回SimpleCV:
import scipy
import numpy as np
import SimpleCV as scv
cam = scv.Camera()
disp = scv.Display()
while disp.isNotDone():
current = cam.getImage().resize(w=768)
matrix = current.getGrayNumpy()
spectrum = np.abs(np.log(np.fft.fftshift(np.fft.fft2(matrix))))
spectrum *= 255 / spectrum.max()
scv.Image(spectrum).show()
if disp.mouseLeft:
breakhttps://stackoverflow.com/questions/23257852
复制相似问题