当前位置: 首页 > news >正文

图像预处理之图像滤波

目录

图像滤波概览

均值滤波(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滤波类似,也是基于一阶导数来计算边缘强度和方向。

相关文章:

图像预处理之图像滤波

目录 图像滤波概览 均值滤波(Mean Filter) 中值滤波(Median Filter) 高斯滤波(Gaussian Filter) 双边滤波(Bilateral Filter) 方框滤波(Box Filter) S…...

【通俗理解】隐变量的变分分布探索——从公式到应用

【通俗理解】隐变量的变分分布探索——从公式到应用 关键词提炼 #隐变量 #变分分布 #概率模型 #公式推导 #期望最大化 #机器学习 #变分贝叶斯 #隐马尔可夫模型 第一节:隐变量的变分分布的类比与核心概念【尽可能通俗】 隐变量的变分分布就像是一场“捉迷藏”游戏…...

PyTorch 分布式并行计算

0. Abstract 使用 PyTorch 进行多卡训练, 最简单的是 DataParallel, 仅仅添加一两行代码就可以使模型在多张 GPU 上并行地计算. 但它是比较老的方法, 官方推荐使用新的 Distributed Data Parallel, 更加灵活与强大: 1. Distributed Data Parallel (DDP) 从一个简单的非分布…...

[cg] vulkan external_memory

最近在写硬件编码的代码,渲染器渲染出的RT需要给到编码器做硬编,有两种方法能做。 一是通过 map的方式,把显存里的数据读到cpu,拷贝一份cpu data给编码器,但这种方式会有内存拷贝的开销。所以,我们思考是否…...

如何使用Python代码实现给GPU预加热

如何使用Python代码实现给GPU预加热 一、引言二、使用深度学习框架进行预加热2.1 TensorFlow预加热2.2 PyTorch预加热三、使用CUDA进行预加热四、预加热的效果评估与优化五、结论与展望在高性能计算和深度学习领域,GPU(图形处理器)已经成为不可或缺的加速工具。然而,在实际…...

硬件知识 cadence16.6 原理图输出为pdf 网络名下划线偏移 (ORCAD)

1. cadence原理图输出为PDF网络名下划线偏移 生这种情况的原因 1. 设计的原理图图纸大小比正常的 A4图纸大。 2. 打印为PDF 的时候,打印机的设置有问题。 2.cadence原理图输出为 PDF网络名下划线偏移的情况 可以看到上图,网络名往上漂移。 3. 解决办法 …...

ffmpeg视频滤镜:提取缩略图-framestep

滤镜描述 官网地址 > FFmpeg Filters Documentation 这个滤镜会间隔N帧抽取一帧图片&#xff0c;因此这个可以用于设置视频的缩略图。总体上这个滤镜比较简单。 滤镜使用 滤镜参数 framestep AVOptions:step <int> ..FV....... set frame st…...

RecyclerView详解——(四)缓存复用机制

稍微看了下源码和部分文章&#xff0c;在此做个小小的总结 RecyclerView&#xff0c;意思为可回收的view&#xff0c;那么相对于listview&#xff0c;他的缓存复用肯定是一大优化。 具体而言&#xff0c;当一个列表项被移出屏幕后&#xff0c;RecyclerView并不会销毁其视图&a…...

进程 系统调用 中断

进程P通过执行系统调用从键盘接收一个字符的输入&#xff0c;已知此过程中与进程P相关的操作包括&#xff1a; ①将进程P插入就绪队列&#xff1b; ②将进程P插入阻塞队列&#xff1b; ③将字符从键盘控制器读入系统缓冲区&#xff1b; ④启动键盘中断处理程序&#xff1b; …...

演讲回顾丨杭州悦数 CTO 叶小萌:图数据库发展新航向——拥抱 GQL,融合 HTAP,携手 AI

本文为杭州悦数 CTO 叶小萌在“标准智能&#xff1a;新质生产力的原动力”悦数图数据库新产品发布会上的演讲回顾&#xff0c;主题为&#xff1a;《新标准、新期待&#xff1a;展望图数据库发展的关键方向》 各位嘉宾、悦数图数据库的用户以及线上的观众朋友们大家好&#xff0…...

Java安全—JNDI注入RMI服务LDAP服务JDK绕过

前言 上次讲到JNDI注入这个玩意&#xff0c;但是没有细讲&#xff0c;现在就给它详细地讲个明白。 JNDI注入 那什么是JNDI注入呢&#xff0c;JNDI全称为 Java Naming and Directory Interface&#xff08;Java命名和目录接口&#xff09;&#xff0c;是一组应用程序接口&…...

C++:设计模式-单例模式

单例模式&#xff08;Singleton Pattern&#xff09;是一种设计模式&#xff0c;确保一个类只有一个实例&#xff0c;并且提供全局访问点。实现单例模式的关键是防止类被多次实例化&#xff0c;且能够保证实例的唯一性。常见的实现手法包括懒汉式、饿汉式、线程安全的懒汉式等。…...

Softing工业将OPC UA信息建模集成到边缘应用和安全集成服务器中

Softing工业宣布将OPC UA&#xff08;统一架构&#xff09;信息建模集成到其边缘产品系列及安全集成服务器&#xff08;SIS&#xff09;中&#xff0c;这一技术进步使得在工业物联网&#xff08;IIoT&#xff09;应用中的数据集成、交换与控制更加无缝、有效。 &#xff08;OPC…...

WPF中如何让Textbox显示为一条直线

由于Textbox直接使用是一条直线 设置如下代码 可以让Textbox变为直线输入 <Style TargetType"TextBox"x:Key"UsernameTextBoxStyle"><Setter Property"Template"><Setter.Value><ControlTemplate TargetType"{x:Typ…...

VSCode汉化教程【简洁易懂】

我们安装完成后默认是英文界面。 找到插件选项卡&#xff0c;搜索“Chinese”&#xff0c;找到简体&#xff08;更具你的需要&#xff09;&#xff08;Microsoft提供&#xff09;Install。 安装完成后选择Change Language and Restart。...

跨平台多开账号防关联:轻松管理多个账号!

对于跨境电商、独立站以及社媒营销领域&#xff0c;如何高效管理多个账号、确保账号安全是企业面临的重大挑战。那么如何仅用一台电脑就能实现跨平台多开账号呢&#xff1f; 一、为什么需要跨平台多开账号并防关联&#xff1f; 1. 品牌推广&#xff1a;不同平台拥有不同的用户…...

DICOM图像处理:深入解析DICOM彩色图像中的Planar配置及其对像素数据解析处理的实现

引言 在DICOM(Digital Imaging and Communications in Medicine)标准中,彩色图像的存储与显示涉及多个关键属性,其中**Planar Configuration(平面配置)**属性(标签 (0028,0006))尤为重要。当遇到彩色DICOM图像在浏览时被错误地分割为9张小图,而实际应显示为一…...

jupyter notebook的 markdown相关技巧

目录 1 先选择为markdown类型 2 开关技巧 2.1 运行markdown 2.2 退出markdown显示效果 2.3 注意点&#xff1a;一定要 先选择为markdown类型 3 一些设置技巧 3.1 数学公式 3.2 制表 3.3 目录和列表 3.4 设置各种字体效果&#xff1a;加粗&#xff0c;斜体&#x…...

Linux连接网络的三种方式

Linux 连接网络的三种常见方式如下&#xff1a; 桥接模式 原理&#xff1a;虚拟网络接口与物理网络接口或另一个虚拟接口 “桥接”&#xff0c;形成逻辑上的网络交换机&#xff0c;使所有通过该桥接设备的数据包能被转发到桥接组中的所有接口&#xff0c;如同在一个局域网内…...

##继承##

继承的概念 #继承是新模板基于老模板的基础上修改而成&#xff0c;制作新模板时不需要重新开始制作&#xff0c;可以在老模板的基础上进行修改.(如手机版本的换代&#xff0c;软件的版本更新等) #程序也可以继承 继承的格式: class 继承模块&#xff08;被继承模块&#xff…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...