scipy一维卷积函数convolve1d

文章目录

基本原理

卷积是一种积分变换方法,可理解为滑动平均的推广,在连续函数和数列上的定义分别为

f ( t ) ∗ g ( t ) = ∫ f ( τ ) g ( t − τ ) d τ x ( n ) ∗ h ( n ) = ∑ x ( i ) h ( n − i ) f(t)*g(t) = \int f(\tau)g(t-\tau)\text d\tau\\ x(n)*h(n) = \sum x(i)h(n-i) f(t)∗g(t)=∫f(τ)g(t−τ)dτx(n)∗h(n)=∑x(i)h(n−i)

convolve1d函数

scipy的ndimage模块提供了convolve1d函数,顾名思义用于1维卷积计算,其输入参数如下

python 复制代码
scipy.ndimage.convolve1d(input, weights, axis=-1, output=None, mode='reflect', cval=0.0, origin=0)

其中,mode用以调节卷积后边缘填充的数值,具体情况如下表所示,其中k即为cval参数。

左侧填充 数据 右侧填充
reflect d , c , b , a d, c, b, a d,c,b,a a , b , c , d a, b, c, d a,b,c,d d , c , b , a d, c, b, a d,c,b,a
constant k , k , k , k k, k, k, k k,k,k,k a , b , c , d a, b, c, d a,b,c,d k , k , k , k k, k, k, k k,k,k,k
nearest a , a , a , a a, a, a, a a,a,a,a a , b , c , d a, b, c, d a,b,c,d d , d , d , d d, d, d, d d,d,d,d
mirror d , c , b d, c, b d,c,b a , b , c , d a, b, c, d a,b,c,d c , b , a c, b, a c,b,a
wrap a , b , c , d a, b, c, d a,b,c,d a , b , c , d a, b, c, d a,b,c,d a , b , c , d a, b, c, d a,b,c,d

实战

下面实战演示一下不同模式的填充区别

python 复制代码
import numpy as np
n = np.arange(20)/2
x = np.sin(n)
h = [-2, -1, 0, 1, 2]

plt.plot(x)
plt.plot(y, label=m, marker='.', color='r')
for m in ["reflect", "constant", "nearest", "mirror", "wrap",]:
    y = sn.convolve1d(x, h, mode=m, cval=2)
    plt.plot(y, label=m)

plt.legend()
plt.grid()
plt.show()

得到图像

相关推荐
WSSWWWSSW8 天前
SciPy科学计算与应用:SciPy信号处理入门-从理论到实践
信号处理·scipy
猫头虎22 天前
用 Python 写你的第一个爬虫:小白也能轻松搞定数据抓取(超详细包含最新所有Python爬虫库的教程)
爬虫·python·opencv·scrapy·beautifulsoup·numpy·scipy
心态与习惯1 个月前
两个函数的卷积
画图·卷积·几何意义·convolution
万粉变现经纪人2 个月前
如何解决pip安装报错ModuleNotFoundError: No module named ‘tkinter’问题
python·beautifulsoup·pandas·pip·策略模式·httpx·scipy
超龄超能程序猿2 个月前
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
人工智能·python·机器学习·numpy·pandas·scipy
超龄超能程序猿2 个月前
使用 Python 对本地图片进行图像分类
开发语言·人工智能·python·机器学习·分类·数据挖掘·scipy
超龄超能程序猿2 个月前
(3)机器学习小白入门 YOLOv: 解锁图片分类新技能
python·numpy·pandas·scipy
Expecto03 个月前
Matlab数值计算
matlab·数值计算
whoarethenext3 个月前
图像卷积OpenCV C/C++ 核心操作
c语言·c++·opencv·卷积
終不似少年遊*4 个月前
【从基础到模型网络】深度学习-语义分割-基础
网络·人工智能·深度学习·语义分割·卷积·上采样