python scipy卷积 图像卷积
来源:互联网 发布:网络主播瞳孔 编辑:程序博客网 时间:2024/05/16 15:49
python学习笔记 26:scipy卷积运算
原文:http://blog.csdn.net/shu15121856/article/details/76285479
scipy的signal模块经常用于信号处理,卷积、傅里叶变换、各种滤波、差值算法等。
*两个一维信号卷积
数组卷积的例子:
import scipy.signalimport numpy as npx=np.array([1,2,3,4])h=np.array([1,1,1])bb= scipy.signal.convolve(x,h) #卷积运算print(bb)
- 1
- 2
- 3
- 4
- 5
- 6
卷积运算大致可以分成3步,首先先翻转,让两个信号列反过来,如上面就是1,2,3和6,5,4。然后作平移,6,5,4最开始在1,2,3的左边,没有重叠,现在向右移动,4和1就重叠了。对于重叠的部分,作乘积求和。也就是1x4得到第一个结果1,然后再移动后5x1+4x2得到第二个结果13以此类推。
卷积运算可以用来做大整数的乘法(数组表示数的乘法),比如在上面的例子中,要求123乘以456,可以先得到它的卷积序列,然后从后往前,18将8保留,进位1给27;然后27变成28,把8保留进位2给28;然后28变成30,把0保留进位3给13;然后13变成16,把6保留进位1给4;4变成5即是最高位。也就是乘法的结果是56088。
*对白噪声卷积
import numpy as npfrom scipy import signalimport matplotlib.pyplot as pltsig=np.random.randn(1000) #生成随机数autocorr=signal.fftconvolve(sig,sig[::-1],mode='full') #fft算法实现卷积fig,(ax_orig,ax_mag)=plt.subplots(2,1) #建立两行一列图形ax_orig.plot(sig) #在第一行把原始的随机数序列sig画出来# [<matplotlib.lines.Line2D object at 0x0000000006E1DC88>]ax_orig.set_title('White noise') #设置标题'白噪声'# <matplotlib.text.Text object at 0x0000000006931860>ax_mag.plot(np.arange(-len(sig)+1,len(sig)),autocorr) #卷积后的图像# [<matplotlib.lines.Line2D object at 0x0000000006E1DB00>]ax_mag.set_title('Autocorrelation') #设置标题# <matplotlib.text.Text object at 0x0000000006DFE8D0>fig.tight_layout() #此句可以防止图像重叠# fig.show() #显示图plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
fftconvolve只是用fft算法(快速傅立叶变换)实现的卷积,其结果应当和普通的convolve一样。
*二维图像卷积运算
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
二维的卷积需要用上面的signal.convolve2d()。
之所以要对卷积后的图像数组grad作np.absolute()求绝对值运算是因为灰度图像的值都是正值,没有负的,为了防止出现负值所以才这样做。
二维的卷积运算还有一种函数,是signal.sepfir2d(),它可以传入三个参数,后两个参数指定行和列的卷积和(两个方向上的卷积是可以不同的,分别指定卷积和序列)。
阅读全文
0 0
- python scipy卷积 图像卷积
- scipy的二维图像卷积运算
- 【python学习笔记】26:scipy卷积运算
- 图像卷积-空间卷积
- scipy一维卷积
- 图像卷积
- 图像卷积
- 图像卷积
- 图像卷积
- 卷积
- 卷积
- 卷积
- 卷积
- 卷积
- 卷积
- 卷积
- 卷积
- 卷积
- 515. Find Largest Value in Each Tree RowI(BFS)
- 2013-2017:中国 CV(计算机视觉)公司恩仇录
- git使用基础教程
- HDU 5514 Frogs 容斥
- 人机交互的重点是“机器”?CCF-ADL专家详解人类心理如何影响人机交互的打造
- python scipy卷积 图像卷积
- 京东-首页轮播
- Oculus 揭秘 VR 中的近场 3D 音效技术
- bzoj 1641: Cow Hurdles 奶牛跨栏 floyd
- Java加密技术(四)——非对称加密算法RSA
- C语言实现扫雷游戏
- 用两个栈实现队列 【C++实现】
- 线程初步(一)
- The C Programming Language 练习题2-6