【图像处理与机器视觉】灰度变化与空间滤波

news2024/12/24 11:27:05

基础

空间域与变换域

空间域:认为是图像本身,对于空间域的操作就是对图像中的像素直接进行修改
变换域:变换系数处理,不直接对于图像的像素进行处理

邻域

图像中某点的邻域被认为是包含该点的小区域,也被称为窗口

空间滤波

邻域选择空间域中的一小块区域,对于邻域中的像素运用算子T,并在该位置产生一个输出;随后将邻域的原点移动到下一个位置,并且重复前面的过程,生成下一个位置的值,当邻域的大小为1*1的时候,输出像素只取决于输入像素,而与周边像素无关

灰度变换函数

(1)反转变换:s = (L-1) - r
r为输入图像像素,s为输出图像像素,[0,L-1]为图像的灰度集
作用:使黑白反转
(2)对数变换: s = c log ⁡ ( 1 + r ) s= c\log(1+r) s=clog(1+r)
c为常数,r>=0,使用对数变换可以让原图的灰度进行压缩,避免超出设备的限制,如图所示,将较低的灰度提高到了中间,同理还有其他变换函数也能起到相同或者相反的作用
在这里插入图片描述
(3)幂变换: s = c ⋅ r γ s=c\cdot r^\gamma s=crγ
gamma小于1的时候,提高了灰度级,gamma大于1时,降低了灰度级
(记住图片就好)
在这里插入图片描述

直方图处理(重要)

对于一个灰度级范围为[0,L-1]的数字图像,其直方图表示为 h ( r k ) = n k h(r_k) = n_k h(rk)=nk,其中rk代表着第k级灰度,nk是图像中处在该灰度级的像素个数
归一化: p ( r k ) = h ( r k ) / M N p(r_k)=h(r_k)/MN p(rk)=h(rk)/MN
p是灰度级在图像中出现的概率估计,所有分量加起来之和为1
在这里插入图片描述
从左至右分别为暗图片,两图片,低对比度图片,高对比度图片

直方图均衡

目的就是将聚集在一起的灰度值变得“平坦”得分布在所有灰度级上,从最终结果上来说可以认为增加了对比度,同时将过亮或者过暗的图片调整正常。
这里我们不对于直方图均衡的具体原理进行细究,如想了解清楚请查看此处:直方图均衡化原理
理想情况下,均衡后的连续函数会使所有灰度级的概率密度全部相等
在这里插入图片描述
以下为实际遇到时的处理:
(这里也可以跳转我之前做过的直方图均衡/匹配实验,内含matlab代码:https://blog.csdn.net/weixin_46876169/article/details/137008120?spm=1001.2014.3001.5501)
e.g.一幅图大小为64*64,其灰度级范围为[0,7],归一化的灰度分布如下表所示:
在这里插入图片描述
直方图均衡变换函数为: s k = T ( r k ) = ( L − 1 ) ∑ j = 0 k p r ( r j ) s_k = T(r_k)=(L-1)\sum\limits_{j=0}^kp_r(r_j) sk=T(rk)=(L1)j=0kpr(rj)
可以计算得到: s 0 = 7 × p r ( r 0 ) = 7 ⋅ 0.19 = 1.33 s_0 = 7 \times p_r(r_0) = 7 \cdot 0.19 = 1.33 s0=7×pr(r0)=70.19=1.33 s 1 = 7 p r ( r 0 ) + 7 p r ( r 1 ) = 3.08 s_1= 7p_r(r_0) + 7p_r(r_1) = 3.08 s1=7pr(r0)+7pr(r1)=3.08,同样有s2=4.55,s3=5.67,s4=6.23,s5=6.65,s6=6.86,s7=7.00
将这些小数进行取整到最近的整数:
在这里插入图片描述
通过这一组式子,我们可以得到映射关系,原本灰度级为0的像素映射到1,灰度级为1的像素映射到3,其他类似
在这里插入图片描述
我们可以发现,均衡后的直方图在亮度上整体有了提高,同时尽可能均匀的平铺在所有灰度级中

直方图匹配

有时候直方图均衡处理完的图片并不满足我们需要的效果,比如对于上图我们只想提高亮度,而不想提高其对比度,那么通过直方图均衡这样的方法就没法做到。此时我们可以选取一张我们希望的亮度与对比度的图片,使用直方图匹配的方法来将原直方图变为我们需要的样子。
这里我们仍然忽略繁杂的理论推导,直接来看一看具体的例子,假设变换对象仍然为原来的图片,新的参考图的直方图给在了图中:
在这里插入图片描述
(1)对于原图与参考图均进行直方图均衡:
在这里插入图片描述
在这里插入图片描述
将s的值与G(z)的值相对应,每个s取最接近的G(z)值,当s离两个G(z)值一样接近时,取较小的那个,最终可以得到s对应z的映射,再加上原本r到s的映射,最终就能得到r到z的映射
在这里插入图片描述
在这里插入图片描述
如此就可以得到目标的直方图,需要注意的是,映射完后原图的直方图各灰度级概率密度并不与目标图完全一致,而是指分布一致
在这里插入图片描述

空间滤波

滤波是指通过或拒绝一定范围内的频率分量,例如能够通过低频分量的滤波器叫做低通滤波器,最终效果可以对一幅图片进行模糊处理。
根据执行的操作可以分为:线性空间滤波器和非线性空间滤波器去
对于一个窗口为3x3的滤波器,其输出为各位置上的系数与对应像素值的乘积之和
如果期望图像中的像素变化为以该像素为中心的3x3邻域的平均灰度,可以使用 R = 1 9 ∑ i = 1 9 z i R = \frac{1}{9}\sum\limits_{i=1}^9z_i R=91i=19zi

平滑空间滤波

平滑滤波用于模糊处理和降低噪声
模糊处理经常用于预处理任务,可以去除图像中的一些噪声

平滑线性滤波器

可以归入低通滤波器,主要作用是降低噪声,去除图像中的不相关细节,但也可能导致边缘模糊或者由于灰度级数量不足导致的伪轮廓
在这里插入图片描述
加权平均滤波:
在这里插入图片描述

非线性滤波器

统计排序滤波器是一种非线性滤波器,通过滤波器中包围的图像中所含像素的排序来决定中心像素的值
例如:中值滤波器,将滤波器内灰度的中值代替滤波器中心的值,此外除了取中值,还可以取最大值(最大值滤波器),最小值(最小值滤波器)
中值滤波器对于处理脉冲噪声(椒盐噪声)非常有效

锐化空间滤波器

对于一阶微分和二阶微分的定义:
一阶微分:(1)在恒定区域为0(2)在斜坡或台阶的起点处非0(3)在斜坡上非0
二阶微分:(1)在恒定区域为0(2)在台阶或斜坡的起点处非0(3)在斜坡上为0
在这里插入图片描述

使用拉普拉斯算子进行图像锐化

拉普拉斯算子是一种各向同性微分算子,这种滤波器的响应与其以何方向作用在图像上无关。
对于两个变量的拉普拉斯算子,
∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^2f=\frac{\partial^2f}{\partial x^2}+\frac{\partial^2f}{\partial y^2} 2f=x22f+y22f
将其以离散的形式表述,我们就可以得到:
在这里插入图片描述
对于y也是同理:
在这里插入图片描述
故最终可以得到:
在这里插入图片描述
需要注意的是,拉普拉斯算子所产生的是一种滤波,可以认为是一种滤镜,和原图进行叠加才能起到相应的作用:

当拉普拉斯算子的中心常数为负时,c=-1,否则c=1

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

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

相关文章

ai智能写作app有分享吗?4个专业的软件!

在数字化浪潮席卷全球的今天,内容创作的需求日益旺盛,而AI智能写作app的出现,无疑为内容创作者们带来了一股清新的风。它们凭借强大的自然语言处理能力和海量的数据资源,帮助创作者们快速生成高质量、有吸引力的文章,让…

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率,但是其标注格式如何能转换成YOLO标注格式,具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

五大PS插件推荐,让你的设计效率翻倍!

前言 PS插件可以在繁忙的设计工作中,帮助设计师们快速高效地完成任务,是每个设计师都渴望解决的问题。这些插件不仅能够提升设计效率,还能让设计师的创意得到更好的展现。接下来,就为大家推荐五款必备的PS插件,让你的…

Vue3_Vuex

目录 一、安装 二、创建实例 三、main.js引入 四、组件内使用 1.查询vuex里面的数据值 2.更改vuex里面的数据值 3.调用vuex里Actions的异步请求方法 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态,并以相…

虚拟机Ubuntu扩展磁盘大小

虚拟机Ubuntu扩展磁盘大小 1. 选择硬盘,并点击扩展,如果扩展选项是灰色的,请考虑是否开机或者留有快照 2. 虚拟机Ubuntu扩展磁盘大小 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2aea6670d42940f68d0f53c87810ac2b.png 3. 完成后开机,此时,我们的系统是还没…

DevOps后时代,构建基于价值流的平台化工程

本文来自腾讯蓝鲸智云社区用户: CanWay 平台化工程涉及双重核心意义。一方面,是类似利用IDE等工具提高工程师效率的平台化工程,如GitOps或命令行调度般便捷。然而,本文重点探讨的是基于价值流的平台化工程,尤其针对传统金融行业&a…

ClickHouse如何整合数据源:MySQL、HDFS...

一、ClickHouse数据源 ClickHouse 作为一个强大的列式数据库管理系统,支持多种数据源,使得用户能够方便地将数据导入 ClickHouse 进行存储和分析。以下是常见的 ClickHouse 数据源: 外部数据源 HDFS: 支持从 Hadoop 分布式文件系…

Unity协程详解

什么是协程 协程,即Coroutine(协同程序),就是开启一段和主程序异步执行的逻辑处理,什么是异步执行,异步执行是指程序的执行并不是按照从上往下执行。如果我们学过c语言,我们应该知道&#xff0…

【Python数据预处理系列】掌握数据清洗技巧:如何高效使用drop()函数去除不需要的列

目录 一、准备数据 二、使用drop函数去除掉指定列 在数据分析和预处理的过程中,经常会遇到需要从数据集中移除某些列的情况。本文将引导您了解如何使用drop函数高效地去除不需要的列,帮助您提升数据处理技能,确保您的数据集只包含对分析有价…

基于SSM框架的垃圾分类系统的设计与实现(含源码+sql+开题报告+论文+论文答辩模板)

图1 前台首页截图 首页展示:首页展示法律法规、公示公告、用户交流论坛、分类指南、垃圾站点、以及个人中心; 法律法规:展示我国《城市生活垃圾分类及其评价标准》以及《生活垃圾分类标志》等最新法律法规; 公示公告&#xff1…

机器视觉——多图颜色检测

今天我们实现将一组图片导入,然后对它们进行颜色检测分类。 比如下面一组图片: 首先我们需要导入这组图片 之后会在编辑器里面生成这样一段代码 之后再继续相应代码编写 ,我的思路是利用颜色空间转换 RGB转到HSV trans_from_rgb(R, G, B,…

docker镜像深入理解

大家好,本篇文章和大家聊下docker相关的话题~~ 工作中经常有关于docker镜像的问题,让人百思不解 docker镜像加载到系统中到哪里去了?docker load 加载镜像的流程是怎样的?为什么容器修改内容后,删除容器后再次开启容…

小公司的软件开发IT工具箱

目录 工具链困境 难题的解决 达到的效果 资源要求低 工具箱一览 1、代码管理工具 2、自动化发版(测试)工具 3、依赖库(制品包)管理 4、镜像管理 5、授权管理(可选) 待讨论:为什么不是…

1.音视频开篇

目录 音视频播放的原理 音视频数据格式YUV YUV数据存储比 ​编辑 YUV空间格式 RGB与YUV转换 音视频播放的原理 主要分为:解协议->解封装->解码->音视频同步->播放。当然,如果是本地播放,没有解协议这一步骤。 采集数据其实…

hutool工具实践-缓存

简介 依赖引入 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-cache</artifactId><version>5.8.17</version></dependency> hutool工具既可以像上一章hutool工具实践-验证码-CSDN博客所说直接全部引入&#x…

uniapp app与mini program相互跳转

app跳微信小程序 方法1&#xff1a;通过URL Schema跳转 参考文档获取 URL Scheme | 微信开放文档 方法2: 通过URL Link跳转 参考文档获取加密 URL Link | 微信开放文档 注意点&#xff1a; 上述两个方法生成的url&#xff0c;需要先通过浏览器打开链接&#xff0c;再自动跳…

5-Django项目--分页与搜索(资产页面)

目录 views/asset_data.py asset_data/asset_data.html 搜索与分页笔记: 搜索 整数搜索 字符串搜索 分页 views/asset_data.py # -*- coding:utf-8 -*- from django.shortcuts import render, redirect, HttpResponse from django.utils.safestring import mark_safe f…

如何使自己写的代码易读易懂?

〓● 如果代码可读性不佳、不容易理解&#xff0c;可能造成如下问题&#xff1a; 〓❏ 其他工程师浪费时间解读它&#xff1b; 〓❏ 误解导致引入缺陷&#xff1b; 〓❏ 其他工程师修改时破坏代码。 〓● 提高代码可读性&#xff0c;有时候可能使其变得更为冗长、占用更多的…

nesting in wrf

Choices for Nesting are:0 no nesting (only available for serial and smpar) 0. no nesting (only available for serial and smpar)1. basic2. preset moves preset moves3. vortex following • default is option 0 for serial/smpar, 1 for dmpar • smpar Shared Mem…

应对800G以太网挑战:数据中心迁移

在过去几年中&#xff0c;云基础设施和服务的大规模使用推动了对更多带宽、更快速度和更低延迟性能的需求。交换机和服务器技术的改进要求布线和架构随之调整。因此&#xff0c;800G以太网对数据中心迁移的需求&#xff0c;特别是对速率&#xff08;包括带宽、光纤密度和通道速…