图像预处理之图像滤波

目录

图像滤波概览

均值滤波(Mean Filter)

中值滤波(Median Filter)

高斯滤波(Gaussian Filter)

双边滤波(Bilateral Filter)

方框滤波(Box Filter)

Sobel滤波

Laplace滤波

Canny滤波

Scharr滤波


图像滤波概览

线性滤波非线性滤波
均值滤波(Mean Filter)中值滤波(Median Filter)
高斯滤波(Gaussian Filter)双边滤波(Bilateral Filter)
方框滤波(Box Filter)Canny滤波
Sobel滤波
Laplace滤波
Scharr滤波

均值滤波(Mean Filter)

均值滤波是一种简单的线性滤波方法。它通过计算图像中每个像素邻域内像素值的平均值来替换该像素的值。例如,对于一个3×3的邻域,将邻域内9个像素的值相加,再除以9,得到的结果作为中心像素的新值。

KSize=3

中值滤波(Median Filter)

中值滤波是一种非线性滤波方法。它将像素邻域内的像素值进行排序,然后取中间值作为中心像素的新值。例如,对于一个3×3的邻域,将9个像素值从小到大(或从大到小)排序,取第5个像素的值作为中心像素的新值。

KSize=3

高斯滤波(Gaussian Filter)

高斯滤波基于高斯函数来确定邻域内像素的权重。离中心像素越近的像素,其权重越大;离中心像素越远的像素,权重越小。例如,对于一个5×5的高斯滤波器核,中心像素的权重最大,边缘像素的权重较小。然后将邻域内像素值与对应的权重相乘后求和,得到中心像素的新值。

SigmaX=0.3;SigmaY=0.5;KSize=3

双边滤波(Bilateral Filter)

双边滤波同时考虑了空间距离像素值的相似性。它由两个高斯函数组成,一个基于空间距离,另一个基于像素值的差异。对于邻域内的每个像素,根据其与中心像素的空间距离和像素值的差异来确定权重,然后进行加权平均得到中心像素的新值。

SigmaX=21;SigmaY=21;Neighborhood=3

方框滤波(Box Filter)

方框滤波与均值滤波类似,也是计算邻域内像素值的平均。但它可以选择是否对结果进行归一化。如果进行归一化,就相当于均值滤波;如果不进行归一化,滤波后的图像会比原图像更亮(对于正的图像数据),因为像素值累加后没有除以邻域像素个数。

KSize=3

Sobel滤波

Sobel滤波主要用于边缘检测。它基于图像的一阶导数来计算边缘的强度和方向。Sobel算子包含两个卷积核,一个用于检测水平方向的边缘,另一个用于检测垂直方向的边缘。Sobel滤波对噪声有一定的鲁棒性,因为它是基于局部区域的加权求和(卷积)。

X方向核大小=3;Y方向核大小=3

Laplace滤波

Laplace滤波是基于图像的二阶导数进行边缘检测的方法。它通过计算图像中每个像素与其邻域像素的二阶导数关系来检测边缘。

Scale=1;BorderType=Constant;KSize=3;Delta=0

Canny滤波

Canny滤波是一种多阶段边缘检测算法。被认为是一种较为优秀的边缘检测算法。它能够提供比较精确的边缘检测结果,有效地抑制噪声,并且能够检测到单像素宽度的边缘。

  • 第一步是噪声抑制,通常采用高斯滤波来平滑图像,减少噪声对边缘检测的影响。
  • 第二步是计算梯度幅值和方向,类似于Sobel滤波,通过计算一阶导数来得到图像的梯度幅值和方向。
  • 第三步是非极大值抑制。在计算出梯度幅值和方向后,沿着梯度方向,将每个像素点的梯度幅值与它的邻域像素(沿着梯度方向的两个邻点)进行比较,如果该像素点的梯度幅值不是局部最大值,则将其置为零,这样可以得到更细的边缘。
  • 第四步是双阈值检测和边缘连接。设置两个阈值,高阈值和低阈值。高于高阈值的像素点肯定是边缘点,低于低阈值的像素点肯定不是边缘点,而介于两个阈值之间的像素点,如果与已确定的边缘点相连,则也被认为是边缘点。

KSize=3;最大阈值=255;最小阈值=0

Scharr滤波

Scharr滤波也是一种用于边缘检测的滤波方法。它与Sobel滤波类似,也是基于一阶导数来计算边缘强度和方向。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt-多元素控件

Qt中的多元素控件 Qt提供的多元素控件有: 这里的多元素控件都是两两一对的。 xxWidget和xxView的一个比较简单的理解就是: xxView是更底层的实现, xxWidget是基于xxView封装来的。 可以说,xxView使用起来比较麻烦,但…

<Sqlite><websocket>使用Sqlite与websocket,实现网页端对数据库的【读写增删】操作

前言 本文是在websocket进行通讯的基础,添加数据库进行数据的存储,数据库软件使用的是sqlite。 环境配置 系统:windows 平台:visual studio code 语言:javascript、html 库:nodejs、sqlite 概述 此前,我们实现在利用websocket和socket,将网页端与下位控制器如PLC进行…

Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线

文章目录 前言实现方式MenuLaser实现步骤1.Laser和Cursor2.移植函数3.启动逻辑4.检测射线和UI的碰撞5.激活手柄射线6.更新手柄射线位置7.隐藏手柄射线8.添加手柄的Trigger监听完整节点如下:效果图前言 之前我写过一篇文章《Unreal5从入门到精通之如何在VR中使用3DUI》,其中讲…

主IP地址与从IP地址:深入解析与应用探讨

在互联网的浩瀚世界中,每台联网设备都需要一个独特的身份标识——IP地址。随着网络技术的不断发展,IP地址的角色日益重要,而“主IP地址”与“从IP地址”的概念也逐渐进入人们的视野。这两个术语虽然看似简单,实则蕴含着丰富的网络…

【Linux】文件IO的系统接口 | 文件标识符

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 最近真的任务拉满了&…

时序论文23|ICML24谷歌开源零样本时序大模型TimesFM

论文标题:A DECODER - ONLY FOUNDATION MODEL FOR TIME - SERIES FORECASTING 论文链接:https://arxiv.org/abs/2310.10688 论文链接:https://github.com/google-research/timesfm 前言 谷歌这篇时间序列大模型很早之前就在关注&#xff…

OpenAI 助力数据分析中的模式识别与趋势预测

数据分析师的日常工作中,发现数据中的隐藏模式和预测未来趋势是非常重要的一环。借助 OpenAI 的强大语言模型(如 GPT-4),我们可以轻松完成这些任务,无需深厚的编程基础,也能快速上手。 在本文中&#xff0…

基于深度学习的点云分割网络及点云分割数据集

点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征。点云的有效分割是许多应用的前提,例如在三维重建领域,需要对场景内的物体首先进行分类处理,然后才能进行后期的识别和重建。 传统的点…

快速图像识别:落叶植物叶片分类

1.背景意义 研究背景与意义 随着全球生态环境的变化,植物的多样性及其在生态系统中的重要性日益受到关注。植物叶片的分类不仅是植物学研究的基础,也是生态监测、农业管理和生物多样性保护的重要环节。传统的植物分类方法依赖于人工观察和专家知识&…

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力

ENMOTECH 上一篇文章为大家介绍了某金融科技企业通过 zCloud 多元数据库智能管理平台的告警中心“警警”有条地管理告警并进行敏捷处置的实践案例。本篇跟大家继续分享该案例客户如何利用 zCloud 备份恢复模块下的Binlog解析功能补齐 MySQL 数据恢复能力,让运维人员…

transformer.js(四): 模型接口介绍

前面的文章底层架构及性能优化指南介绍了transformer.js的架构和优化策略,在本文中,将详细介绍 transformer.js 的模型接口,帮助你了解如何在 JavaScript 环境中使用这些强大的工具。 推荐阅读 ansformer.js(二)&…

使用 Elasticsearch 构建食谱搜索(二)

这篇文章是之前的文章 “使用 Elasticsearch 构建食谱搜索(一)” 的续篇。在这篇文章中,我将详述如何使用本地 Elasticsearch 部署来完成对示例代码的运行。该项目演示了如何使用 Elastic 的 ELSER 实现语义搜索并将其结果与传统的词汇搜索进…

1、HCIP之RSTP协议与STP相关安全配置

目录 RSTP—快速生成树协议 STP STP的缺点: STP的选举(Listening状态中): RSTP P/A(提议/同意)机制 同步机制: 边缘端口的配置: RSTP的端口角色划分: ensp模拟…

hhdb数据库介绍(9-21)

计算节点参数说明 checkClusterBeforeDnSwitch 参数说明: PropertyValue参数值checkClusterBeforeDnSwitch是否可见否参数说明集群模式下触发数据节点高可用切换时,是否先判断集群所有成员正常再进行数据节点切换默认值falseReload是否生效是 参数设…

java基础概念38:正则表达式3-捕获分组

一、定义 分组就是一个小括号。 分组的特点: 二、捕获分组 捕获分组就是把这一组的数据捕获出来,再用一次。 后续还要继续使用本组的数据。 正则内部使用:\\组号正则外部使用:$组号 2-1、正则内部使用:\\组号 示…

使用Mac下载MySQL修改密码

Mac下载MySQL MySQL官网链接MySQL​​​​​​ 当进入到官网后下滑到community社区,进行下载 然后选择community sever下载 这里就是要下载的界面,如果需要下载之前版本的话可以点击archives, 可能会因为这是外网原因,有时候下…

【初阶数据结构篇】队列的实现(赋源码)

文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗&#xff1…

【云计算】腾讯云架构高级工程师认证TCP--考纲例题,知识点总结

【云计算】腾讯云架构高级工程师认证TCCP–知识点总结,排版整理 文章目录 1、云计算架构概论1.1 五大版块知识点(架构设计,基础服务,高阶技术,安全,上云)1.2 课程详细目录1.3 云基础架构设计1.4…

AR智能眼镜|AR眼镜定制开发|工业AR眼镜方案

AR眼镜的设计与制造成本主要受到芯片、显示屏和光学方案的影响,因此选择合适的芯片至关重要。一款优秀的芯片平台能够有效提升设备性能,并解决多种技术挑战。例如,采用联发科八核2.0GHz处理器,结合12nm制程工艺,这种低…

大数据新视界 -- 大数据大厂之 Impala 性能优化:集群资源动态分配的智慧(上)(23 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…