time:2015/11/11 双十一
一、初衷
看到一篇帖子[1],里面有python代码,就想实现一下,代码如下:
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt img = cv.imread('Joseph_Fourier_250.jpg', 0)
f = np.fft.fft2(img)
# 快速傅里叶变换算法得到频率分布
fshift = np.fft.fftshift(f)
# 默认结果中心点位置是在左上角,转移到中间位置 fimg = np.log(np.abs(fshift))
# fft 结果是复数,求绝对值结果才是振幅 # 展示结果
plt.subplot(121), plt.imshow(img, 'gray'), plt.title('Original Fourier')
plt.subplot(122), plt.imshow(fimg, 'gray'), plt.title('Fourier Fourier')
plt.show()
结果,发现要安装一系列的lib:numpy,matplotlib等,而这些库又依赖别的库,后面看到[2]下面也写了require的库
昨天把numpy折腾好了,主要的一个问题是“numpy ImportError: DLL load failed: %1”,最后查了一些帖子,发现是版本不对。一想只有自己的numpy是从官网那里下的,貌似是没有64位的,就从[2]中下了64位的whl程序,用pip安装好了。这其中最主要的是折腾pip的安装,也是麻烦。
今天发现还是缺少matplotlib,又去官网下载这个库,结果还是报错“numpy ImportError: DLL load failed: %1”,依旧是从[2]中下载64位whl程序搞定。最后是参考[3]搞定!!!
二、总结:
1. python的lib库安装各种麻烦,版本不一致肯定是他的问题所在,不知道js怎么样
2. pip安装也比较折腾
3. “numpy ImportError: DLL load failed: %1”这种问题一般是32位或者64位版本不一致导致的
三、参考:
[1]http://blog.jobbole.com/94144/
[2]http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-dateutil
[3]http://my.oschina.net/bery/blog/203595