图像处理--空域滤波增强(原理)

一、均值滤波

        线性滤波算法,采用的主要是邻域平均法。基本思想是使用几个像素灰度的某种平均值来代替一个原来像素的灰度值。可以新建一个M×N的窗口以f(x,y)为中心,这个窗口S就是f(x,y)的邻域。假设新的新的像素灰度值为g(x,y),则计算公式为

g(x,y)=\frac{1}{M\times N}\sum _{(x,j)\in S}f(i,j)

        1.1 简单平均法

        就是使用窗口内的所有像素灰度值相加求均值后来代替原来的灰度值。

        其实就是每一个像素的权值为1的滑动窗口。

        1.2 加权平均法

        就是在窗口中加入某个权值进行加权计算。因为从欧几里得距离,中心点的上下左右的灰度值距离比对角上的其实是要更近的。所以我们可以合理的认为离得近的灰度值越靠近,所以就赋予不同的权值。

        之后对 g(x,y)的计算和上面的额简单平均法是一样的。

        这两种滤波算法对于被噪点类型的噪声污染(椒盐噪声)的图像处理事比较有效的,因为这种突兀的噪点在这种方式的滤波下是会被平均掉、平滑掉。但是对于高斯噪声这种非脉冲类型的噪声效果不明显,甚至会降低图像的清晰度。

二、中值滤波

        中值滤波属于一种非线性的滤波。其基本原理是,将模板内像素按照像素值的大小进行排序,生成单调上升或者下降的序列,然后利用该序列中间位置的像素值来代替被求位置的数值,从而消除孤立的像素点。这种方法能够彻底的消除尖锐噪声。这种滤波算法相比于均值滤波,对于椒盐噪声有更好的效果,但是对于高斯滤波效果是差不多的。

        这也很好理解。这两种类型的滤波算法都是利用一些临近选择从而去除一些极端的像素值。对于高斯噪声这种均匀分布的噪声是没有很好的效果的。

三、锐化空间滤波

        锐化处理的目的是突出灰度过度的部分。在图像中,物体与背景连接的地方灰度值是发生跳跃的。数学上,也就是说梯度变化比较大。因此,利用梯度的变化率我们可以很好的描述一个图片中物体的轮廓状态:当梯度变化率比较小的时候,图像中物体的交接不明显;当梯度变化率比较大的时候,物体在图像中就比较突出。

        对于一个连续函数f(x,y),其梯度可以表示为:\triangledown f = [\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}]^{T}。计算他的模值可以使用2范数或者1范数。反正确定模值的方法有很多。

        当确定好了模值,就是如何确定g(x,y)的数值。一般来说是令该点的灰度值为梯度值。亦或者是设置一个阈值,当梯度大于这个阈值的时候做g(x,y) = G[f(x,y)],小于的时候保留原值或者设置为其他预设值的数值。

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

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

相关文章

在excel中,alt+13和alt+10都是什么字符?

1.回车符与换行符 Alt13是回车符,Alt10是换行符。 2.用在microsoft word中 在microsoft office中,回车符 和 换行符 对文本来讲都有换行的作用,但它们并不是同一种符号。下图是在word中两种字符的显示, 当使用 回车符 进行文本…

Ubuntu MATE系统下WPS显示错位

系统:Ubuntu MATE 22.04和24.04,在显示器设置200%放大的情况下,显示错位。 显示器配置: WPS显示错位: 这个问题当前没有找到好的解决方式。 因为4K显示屏设置4K分辨率,图标,字体太小&#xff…

TCP(TCP客户端、服务器如何通信)

一、TCP介绍 TCP的特点: 面向连接的协议:TCP是一种可靠的、面向连接的协议,在通信之前需要建立连接,以确保数据的可靠传输。这意味着在传输数据之前,发送方和接收方之间需要建立一条可靠的连接通道。流式协议&#x…

Spring Cloud架构进化实操:Eureka、Apollo、OpenFeign、Ribbon、Zuul组件

文章目录 前言一、引出二、服务注册与发现2.1 创建Eureka注册中心2.1.1 引入pom依赖2.1.2 配置yaml2.1.3 启动服务21.4 测试访问 2.2 创建服务提供者2.2.1 配置yaml2.2.2 启动服务2.2.3 测试访问 2.3 创建服务消费者2.3.1 服务提供者接口2.3.2 服务消费者调用接口 三、负载均衡…

Docker的私有仓库部署-Harbor

目录 一. Docker原生私有仓库 Registry 1. Registry 的介绍 2. Registry 的部署过程 二. Registry 的升级——Habor 1. Harbor 简介 2. Harbor 特性 3. Harbor 的构成 4. Harbor 部署 4.1 部署 Docker-Compose 服务 4.2 部署 Harbor 服务 4.2.1 下载或上传 Harbor…

18_Scala面向对象编程trait

文章目录 trait1.定义trait2.向类中混入特质2.1没有父类2.2有父类 3.动态混入3.1动态混入查询功能到公司业务中 4.父类,子类,特质初始化优先级5.Scala功能执行顺序6.常用API trait –特质的学习需要类比Java中的接口,源码编译之后就是interf…

三种方法解决:检测到在集成的托管管道模式下不适用的 ASP.NET 设置

几天前配置一个IIS环境的网站时,出现500错误。根据错误提示,很快把问题解决了,现记录一下,希望能帮到遇到同样问题的网友。 问题描述 (点击图片放大) 应用程序“DEFAULT WEB SITE”中的服务器错误Internet Information Services 7.5错误摘要 HTTP 错误 500.24 - Interna…

抓包证书安装到安卓7.0+手机

前言: 首先理解一下,这个不只是证书到浏览器,而是抓包证书到安卓7.0+手机上的文章; 还有一点区分,在浏览器上装的证书,只是让抓包工具可以抓取手机浏览器的包,而不是抓取手机app上的包; 如果你的证书只是简单的在浏览器下进行安装,那么你的手机app是走不了代理网络的…

视频教程下载:为 GPTs 商店构建 10 个 GPTs获得被动收入

欢迎来到 AI 驱动的内容创作新时代 - GPT 商店。这门综合课程是您成为定制和利用 GPT 模型解决多样化应用的专家的路线图。无论你是错过了应用商店革命的初始浪潮还是乘着它取得了成功,这都是你站在下一个重大数字飞跃前沿的机会。 课程模块: - 介绍 Ch…

Dragonfly 拓扑的路由算法

Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估 Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而文章中也提到了 针对 Dragonfly 拓扑的路由算法。本文对…

java-函数式编程-语法

目录 1、函数表现形式 分类 lambda表达式 参数类型可以全写,也可以全不写,但不能一部分写,一部分不写lambda 的省略策略:凡是可推导,都可以省略

【c++算法篇】双指针(上)

🔥个人主页:Quitecoder 🔥专栏:算法笔记仓 朋友们大家好啊,本篇文章我们来到算法的双指针部分 目录 1.移动零2.复写零3.快乐数4.盛水最多的容器 1.移动零 题目链接:283.移动零 题目描述: 算法…

Python量化炒股的数据信息获取—获取上市公司分红送股数据信息

Python量化炒股的数据信息获取—获取上市公司分红送股数据信息 上市公司分红送股数据,都存放在STK_XR_XD表中,该表保存在finance包中。要查看表中的数据信息,需要使用query()函数。 单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境”…

微服务---gateway网关

目录 gateway作用 gateway使用 添加依赖 配置yml文件 自定义过滤器 nacos上的gateway的配置文件 我们现在知道了通过nacos注册服务,通过feign实现服务间接口的调用,那对于不同权限的用户访问同一个接口,我们怎么知道他是否具有访问的权…

Grafana:云原生时代的数据可视化与监控王者

🐇明明跟你说过:个人主页 🏅个人专栏:《Grafana:让数据说话的魔术师》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Grafana简介 2、Grafana的重要性与影响力 …

开发体育赛事直播平台,研发技术选型与架构设计实现方案

本文将深入探讨“东莞梦幻网络科技”现成体育直播源码的技术实现方案,如何为用户提供流畅、互动、个性化的观赛体验。 一、技术栈选择:强强联合的基石1、后端开发:采用Java与PHP作为主要开发语言。Java以其强大的企业级应用支持,保…

双向冒泡法,可以只求最大最小值

int BiBubbleSort(int Arr[],int n,int maxnum){int left0,rightn-1;int i;bool notDone true;int temp;if(n<2)return -1;while(left<right&&notDone){ notDone false; //设置未发生交换标志 for(ileft;i<right;i){if(Arr[i]>Arr[i1]){//swap(Arr[…

初识指针(1)<C语言>

前言 指针是C语言中比较难的一部分&#xff0c;大部分同学对于此部分容易产生“畏难情结”&#xff0c;但是学习好这部分对C语言的深入很大的帮助&#xff0c;所以此篇主要以讲解指针基础为主。 指针概念 变量创建的本质就是在内存中申请空间&#xff0c;找到这个变量就需要地址…

tiny-Tcmalloc(高并发内存池)

项目地址&#xff08;绝对可运行&#xff09; 一. 初识高并发内存池 1、项目介绍 当前项目是实现一个高并发的内存池&#xff0c;它的原型是google的一个开源项目tcmalloc&#xff0c;tcmalloc全称Thread-Caching Malloc&#xff0c;即线程缓存的malloc&#xff0c;实现了高…

Pytorch 实现 GAN 对抗网络

GAN 对抗网络 GAN&#xff08;Generative Adversarial Network&#xff09;对抗网络指的是神经网络中包括两个子网络&#xff0c;一个用于生成信息&#xff0c;一个用于验证信息。下面的例子是生成图片的对抗网络&#xff0c;一个网络用于生成图片&#xff0c;另一个网络用于验…
最新文章