机器学习之滤波入门

news2024/9/9 1:29:52

滤波的基本概念:

滤波是一种信号处理技术。在机器学习中,滤波通常指的是对输入信号进行加工,以消除噪声、平滑信号或突出特定频率范围的信号

简言之:加工输入,达到理想信号。

用生活的例子来解释:

假设你正在听一首音乐,但是在你的音响系统中有一些杂音。这些杂音可能是由于电源干扰、线缆干扰或其他环境因素引起的。你希望消除这些杂音,以便更好地聆听音乐。

在这种情况下,你可以将滤波器比作一个信号处理器,用于消除杂音。滤波器接收音乐信号作为输入,并根据其设计目标对信号进行处理。例如,低通滤波器可以通过消除高频噪声来使音乐更加平滑,而高通滤波器可以突出音乐中的高频成分,减少低频杂音的影响。这样,滤波器可以改变信号的特性,使你能够更好地享受音乐,而不被杂音干扰。

简言之:加工音乐,达到理想音乐


补充说明:信号和噪声的区别 

信号是包含有用信息的电气或物理量,噪声是指在信号获取、传输或处理过程中引入的干扰。(在通信中,“电气”指的是与电信号相关的物理量,包括电压、电流、电磁波等)


线性滤波与非线性滤波的区别:

线性滤波器:

1.线性滤波器的输出是输入信号与滤波器冲击响应之间的线性组合。

        假设我们有一个线性滤波器,其冲击响应为 h(t)。如果我们将输入信号 x(t) 与该冲击响应进行卷积,得到输出信号 y(t),即:

y(t) = x(t) * h(t)

        (其中,* 表示卷积运算。这个公式描述了线性滤波器的输出是输入信号与滤波器冲击响应之间的线性组合。)

简单来说线性滤波器就是 输入信号跟滤波器做卷积。

2.输入信号与滤波器的冲击响应进行卷积操作。线性滤波具有可加性和比例性的特点

可加性:即

f(x+y) = f(x) + f(y)

        假设我们有一台收音机,可以接收两个不同的广播电台发出的信号。我们将这两个信号输入到同一个滤波器中进行处理,那么输出信号就等于每个信号单独经过滤波器处理后的输出信号的总和。这意味着,如果我们想要听到两个电台发出的信号,我们可以将它们分别输入到同一个滤波器中进行处理,然后将滤波器的输出信号相加即可得到最终的信号。

比例性:即

f(cx) = cf(x)

        假设我们有一台音响系统,音量控制旋钮可以调节输出信号的幅度。如果我们将输入信号输入到滤波器中进行处理,那么输出信号的幅度也会受到音量控制旋钮的影响。这意味着,如果我们将旋钮向右旋转,增加音量,那么输出信号的幅度也会相应地增加;如果我们将旋钮向左旋转,减小音量,那么输出信号的幅度也会相应地减小。 


 时域滤波与频域滤波的区别:

时域滤波直接在时间域中对信号进行滤波处理,而频域滤波是将信号从时域转换到频域进行滤波处理,然后再将信号转换回时域。

时域滤波直接操作信号的时间序列,而频域滤波利用信号的频谱信息进行处理。 

简言之:时域滤波借助时间,频域滤波借助频率。在处理上,时域滤波直接对时间序列上的信号处理,以时间序列的信号输出。频率滤波插入了“转换信号”的一步即时频转换,最终还是以时间序列的信号输出。

  时域滤波与频域滤波的共同点:

最终输出的信号都是一个时域信号

生活的例子说明各自的操作特点:

时域滤波

        假设你正在录制一段音频,录音时有一些杂音干扰进入了录音中。如果你想去除这些杂音,你可以使用一个时域滤波器,例如移动平均滤波器。该滤波器通过在每个时间点上计算当前时刻和前几个时刻的平均值,对音频信号进行平滑处理,从而减少杂音的影响。这种滤波过程直接在时间域中对信号进行操作,从而改变信号的特性。 

       如图所示:

 

频域滤波

        在频域中,信号可以表示为一系列频率和幅度的组合,因此可以选择性地增强或抑制特定频率范围的成分 。

        假设你希望去除低频背景噪声,保留高频声音的细节,你可以使用频域滤波器,如高通滤波器。首先,你可以将音频信号转换到频域,得到频谱表示。然后,你可以选择性地过滤掉低频成分,然后将信号转换回时域,得到滤波后的输出信号。这种频域滤波过程利用信号的频谱信息,可以有选择地增强或抑制特定频率范围的成分,从而实现对信号的滤波处理。


学习最基本的时域滤波方法 

均值滤波

原理:

将每个像素周围的邻域取平均值,然后用这个平均值来代替该像素的原始值。

它会使图像的像素变得模糊。不仅减少噪声,也会减少细节

算法步骤:

  1. 定义一个固定大小的窗口(通常是一个矩形或正方形区域),窗口大小通常是奇数,例如3x3、5x5等。窗口的大小决定了滤波的范围。

  2. 遍历图像的每个像素,将当前像素作为窗口中心

  3. 在窗口内获取所有像素的值。

  4. 计算窗口内像素值的平均值。

  5. 使用平均值来替换窗口中心的像素值。

  6. 继续遍历下一个像素,重复步骤2-5,直到处理完整个图像。

通俗的解释:比方说我现在关注位置在[i,j]的像素点即image[i][j],假设我使用3*3的窗口

我要获得这个点经过均值滤波的值,只需要以这个点为中心,画一个3*3的窗口,把这个窗口所覆盖的点的像素值求和再除以9 ,则可以得到均值滤波后的值。

也就是宽从[j-1,i+1],高从[i-1,i+1],这么一个3*3的窗口,对它求平均。

让我们来验证一下:

 blurred_image是调用cv2得到的均值滤波后的图像。会发现它的[100][100]处的像素值和我们手动计算的像素值十分接近,说明计算方法确实如此。

接着遍历所有点就可以。但是会碰到一种情况,边界的点,周围没有点如何解决:

        在 OpenCV 的 cv2.blur() 函数中,边缘像素的处理是通过对图像应用边界扩展。(Border Extension)策略来解决的。具体来说,cv2.blur() 函数会自动对图像进行边界扩展,以确保在窗口滑动到边缘像素时,仍然可以获取到足够的像素值进行滤波计算。

代码实现:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 进行均值滤波
kernel_size = (5, 5)  # 定义卷积核大小
img_blur = cv2.blur(img, kernel_size)

# 显示原图和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Blurred Image', img_blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

 了解相关的频率滤波

  1. 低通滤波 (Low-Pass Filtering):低通滤波器允许通过低频信号,并削弱或阻止高频信号。它的原理是在频域上去除高频分量,只保留低频分量。低通滤波常用于去除高频噪声或平滑信号。例如,可以使用低通滤波器来平滑图像并去除图像中的细节或噪声。

  2. 高通滤波 (High-Pass Filtering):高通滤波器允许通过高频信号,并削弱或阻止低频信号。它的原理是在频域上去除低频分量,只保留高频分量。高通滤波常用于强调图像或信号中的边缘、纹理或其他高频特征。例如,可以使用高通滤波器增强图像的边缘。

  3. 带通滤波 (Band-Pass Filtering):带通滤波器允许通过特定的频率范围内的信号,并削弱或阻止其他频率范围内的信号。它的原理是在频域上选择一个频率范围,去除其他频率范围的分量。带通滤波常用于信号处理中需要提取特定频率范围内的信号或去除其他频率范围的干扰。

         这些滤波方法在频域中操作,可以对信号进行选择性地增强或减弱特定频率分量。滤波效果取决于滤波器的特性和参数设置,以及信号的频谱特征。合适的滤波方法选择和参数调整可以有效地提取或去除信号中的特定信息,帮助实现信号处理的目标

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UML中的assembly关系

UML中的assembly关系 1.什么是Assembly关系 在UML(统一建模语言)中,"assembly"(组装)是一种表示组件之间关系的关联关系。组件是系统中可替换和独立的模块,可以通过组装来构建更大的系统。 当一…

零基础入门网络安全必看书单(附电子书籍+配套资料)

学习的方法有很多种,看书就是一种不错的方法,但为什么总有人说:“看书是学不会技术的”。 其实就是书籍没选对,看的书不好,你学不下去是很正常的。 一本好书其实不亚于一套好的视频教程,尤其是经典的好书…

中间件(一)

中间件 1. 概念1.1 为什么要使用中间件?1.2 中间件定义及分类 2. 主要分类2.1 事务式中间件2.2 过程式中间件2.3 面向消息的中间件2.4 面向对象中间件2.5 Web应用服务器2.6 数据库中间件2.7 其他 3. 常用的中间件 1. 概念 中间件(Middleware&#xff09…

BigDecimal 类型的使用

目录 一、前言 二、BigDecimal构造方法 二、BigDecimal参与运算 2.1定义初始值 2.2计算 2.3比较大小 2.4BigDecimal取其中最大、最小值、绝对值、相反数: 2.5补充 2.6、java中 BigDecimal类型的可以转换到double类型: 三、BigDecimal格式化、小…

小白白也能学会的 PyQt 教程 —— 图像类及图像相关基础类介绍

文章目录 〇、前言一、PyQt 中的图像类1、图像类简介2、图像类转换① 常用类转换(QPixmap、QImage、QIcon)② QBitmap、QBrush、QPen 转换为 QPixmap 或 QImage③ QByteArray 与 QPixmap、QImage 的互转④ numpy 与 QImage 互转 二、图像显示组件1、使用…

DNDC模型在土地利用变化、未来气候变化下的建模方法及温室气体时空动态模拟实践技术

DNDC模型讲解 1.1 碳循环模型简介 1.2 DNDC模型原理 1.3 DNDC下载与安装 1.4 DNDC注意事项 ​ DNDC初步操作 2.1 DNDC界面介绍 2.2 DNDC数据及格式 2.3 DNDC点尺度模拟 2.4 DNDC区域尺度模拟 2.5 DNDC结果分析 ​ DNDC气象数据制备 3.1 数据制备中的遥感和GIS技术 3…

微博官方API使用方法【从注册到实战】

第一步:微博开发者身份认证 访问微博开放平台,登录自己微博账号,登录之后首先需要完善开发者的基本信息。【使用个人】 填写完成之后【审核通过】如下: 第二步:创建自己的应用 【备注:如果只是为了测试…

Linux安装Redis6.0版本教程

前言:采用Redis源码压缩包解压编译的安装方式。因为centos7.x的gcc版本还是4.8.5,而GCC编译指定的版本是需要5.3以上。 1、下载Redis的tar.gz的安装包 百度云下载:Linux下载Redis6.0.8 提取码:dbbv 2、安装gcc新版本 #环境部署…

【IEEE CIM 2023】基于多目标进化算法的抗菌肽设计方法

Evolutionary Multi Objective Optimization in Searching for Various Antimicrobial Peptides 小生境共享(Niche Sharing)是生物进化算法中的一个重要概念。在传统的进化算法中,通常会假设每个个体都是独立且不同的,因此可能会导…

机器学习基础之单层感知机及线性可分

文章目录 线性可分和权重向量公式线性不可分 线性可分和权重向量 单层感知机是后续深度学习的基础模型,本身没什么用,因为只能解决线性可分问题。 如这张图,想识别照片是横向的还是竖向的,只需要在中间画一条线,白点…

【大数据学习篇9】各区域热门商品Top3分析

学习目标/Target 掌握各区域热门商品Top3分析实现思路 掌握如何创建Spark连接并读取数据集 掌握利用Spark获取业务数据 掌握利用Spark过滤商品的行为类型 掌握利用Spark转换数据格式 掌握利用Spark统计每个区域中的不同商品 掌握利用Spark根据区域进行分组 掌握利用Spark根据区…

Linux的tail,grep,sed命令总结,以使用上述三种命令获取日志信息为例

目录 tail命令语法说明基本参数命令举例 grep命令语法说明匹配模式选择杂项输入控制文件控制 sed命令语法格式举例 使用命令组合查询日志信息 业务需求需要对软件日志进行查询和呈现,查询的条件是时间区间和关键词,系统运行在linux环境下,为此…

阿里巴巴“高并发”核心笔记!《基础+实战+源码+面试+架构》

前言 作为一个普普通通的程序员,如何才能提升自己的能力,在职场上拥有一技之长,这也成为普通的你我,迫切的需求。 拥有什么样的能力才能不被淘汰?答案是:高并发,它几乎成为了每个程序员都想要…

ATTCK v13版本战术介绍——防御规避(六)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术理论知识及实战研究、部分防御规避战术,本期我们为大家介绍ATT&CK 14项战术中防御规避战术第31-36种子技术,后续会介绍防御规避其他子技术&#xf…

还只是停留在听过KMP算法?保姆式分析让你吃透KMP算法

💕成功不是将来才有的,而是从决定去做的那一刻起,持续积累而成。💕 🐼作者:不能再留遗憾了🐼 🎆专栏:Java学习🎆 🚗本文章主要内容:深…

腾讯云,物联网开发平台产品,动态注册步骤

1. 下载后解压,qcloud_iot_mqtt_sign-master.zip GitHub - tencentyun/qcloud_iot_mqtt_signContribute to tencentyun/qcloud_iot_mqtt_sign development by creating an account on GitHub.https://github.com/tencentyun/qcloud_iot_mqtt_sign 2. 按照readme文…

图像噪声类型:椒盐噪声,随机噪声,高斯噪声,泊松噪声,异方差高斯噪声模型和参数估计

文章目录 noise type1. 高斯噪声和泊松噪声2. 高斯分布和泊松分布的差异:3. 异方差高斯 噪声模型(泊松和高斯噪声混合)4. 几种噪声模型5. 信噪比 SNR的计算方法是6. Practical Poissonian-Gaussian noise modeling and fitting for single-im…

【嵌入式烧录刷写文件】-2.4-移动Intel Hex中指定地址范围内的数据

案例背景(共5页精讲): 有如下一段Hex文件,将源地址范围0x9100-0x9104中数据,移动至一个“空的,未填充的”目标地址范围0xA000-0xA004。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717…

Cube Map 系列之:手把手教你 实现天空盒(Sky Box)

什么是天空盒 An skybox is a box with textures on it to look like the sky in all directions or rather to look like what is very far away including the horizon.天空盒是一个使用纹理贴图构建的盒子,人在其中朝任何一个方向看去,其纹理彷佛天空…

Java版本企业工程管理系统软件源码 自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…