Savitzky-Golay滤波的Python实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

一、高斯滤波器

我们在作图的过程中,曲线往往会因为数据点过多而波动性大,高斯滤波器通过复杂的操作使得曲线更加平滑化和简单。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用结果

1.原先的曲线

可能是这个样子的:
在这里插入图片描述

2.滤波后的曲线

变成了这样:
在这里插入图片描述

代码

导入包:

import numpy as np
import scipy
from scipy.integrate import simps  # 用于计算积分
import matplotlib.pyplot as plt  # 用于画图
import pandas as pd
import csv
from scipy import signal

主体:

x=[]
y=[]
with open('input1.csv') as f:
    f_csv = csv.reader(f)
    headers = next(f_csv)
    for row in f_csv:
        x.append(row[0])
        y.append(row[1])
    x =[int(num) for num in x]
    y = [int(float(num)) for num in y]

v = scipy.signal.savgol_filter(y,21,3) #这些参数效果较好

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值