目录

  • 一、绪论
  • 二、基于灰度映射的对比度增强技术
    • 2.1 线性映射
    • 2.2 动态范围压缩
    • 2.3 Gamma校正
    • 2.4 对比度增强实例分析
  • 三、基于直方图的对比度增强技术
    • 3.1 直方图均衡化
    • 3.2 直方图规定化
    • 3.3 结果分析

一、绪论

遥感图像增强是遥感数字图像处理的基本内容,其目的是对遥感图像进行加工,使得对遥感图像解译来说,视觉效果更“好”、更易判读,突出遥感图像中的某些信息,削弱或除去某些不需要的信息。图像增强的主要内容是对比度增强和图像锐化。目前常用的增强技术根据其处理所进行的空间不同,可分为基于空域的方法和基于频域的方法两类。

在图像处理中,空域是指由像素组成的空间,也叫做图像域。空域增强方法指直接作用于像素改变其特性的增强方法。具体的增强操作可仅定义在每个像素位置上,此时称为“点”操作;增强操作还可以定义在每个(x,y)的某个邻域上,此时常称为模板操作和邻域操作。点操作可通过逐一将原始图像在(x,y)处灰度f映射到新灰度g来实现,也可以通过对图像或一系列图像的运算来实现,还可以借助对原始图像的某种统计进行修正来实现。而模板操作则主要通过设计模板参数来实现不同的增强操作。

在频域空间的增强是通过改变图像中不同频率分量来实现。图像频谱给出了图像全局的性质,所以频域增强不是逐个像素进行。它的基本原理是让图像在频域某个范围内的分量受到抑制而让其他分量不受影响,从而改变输出图的频率分布,达到增强的目的。

本博文从三个不同的角度介绍对遥感图像的增强:

① 通过改变图像像素的灰度分布达到图像的增强目的,采用的方法是灰度映射和直方图修正的方法;

② 依照遥感图像地物反射率及大气透射原理,采用去雾算法纠正雾霭等因素造成的图像对比度下降;

③ 通过对图像中特定频率的控制,突出图像中感兴趣的特征。

二、基于灰度映射的对比度增强技术

灰度映射可按如下函数进行描述

y=T(x)y=T(x)y=T(x)

即借助函数T(x)映射将原始图像中每个像素的灰度映射到新的灰度,如原来的灰度值A被映射成C,而原来的灰度值B被映射为D,如图1所示。灰度映射的意义在于通过改变图像的灰度分布,扩展图像的对比度,使图像特征变得明显,它分为线性映射和非线性映射。常见的线性映射类型有图像求反、线性拉伸和分段线性拉伸;常见的非线性映射为借助对数形式映射的动态范围压缩、借助指数形式的Gamma校正

图1 灰度映射原理

2.1 线性映射

改变图像灰度对比度常用的方法是线性变换,它对像素值x按以下线性变换实现一对映射:
y=ax+by=ax+by=ax+b
其中有参数a和b,因而至少需要提供输入图像和目标图像的两个对应灰度值才能估计得到所需要的参数。

2.2 动态范围压缩

实际应用中,有时原图的动态范围太大,超出了某些显示设备的允许范围。如果直接使用原图进行显示,则原图中低灰度的细节可能会丢失而无法显示出来。解决的办法是对原图进行灰度压缩,常用的压缩方法是借助对数形式的映射函数:

y=C×log⁡(1+∣x∣)y=C\times \log (1+\left| x \right|)y=C×log(1+∣x∣)

其中,C为尺度比例常数,变换后原来动态范围很大的x会转换为动态范围很小的y。低灰度之经过映射后,其灰度值会集中在高亮度区域,这时只需显示动态范围较小的高亮度区域就可以把大部分的图像细节展示出来。

2.3 Gamma校正

Gamma曲线是一种特殊的色调曲线,当Gamma值等于1的时候,曲线为与坐标轴成45°的直线,这个时候表示输入和输出密度相同。一般情况下,当用于Gamma校正的值大于1时,图像的高光部分被压缩而暗调部分被扩展,当Gamma校正的值小于1时,图像的高光部分被扩展而暗调部分被压缩,Gamma校正一般用于平滑的扩展暗调的细节。在显示器、扫描仪、打印机等输入、输出设备中这是一个相当常见并且比较重要的概念。在计算机系统中,由于显卡或者显示器的原因会出现实际输出的图像在亮度上有偏差,而Gamma曲线校正就是通过一定的方法来校正图像的这种偏差的方法。如图2所示的实线为γ=2.2\gamma =2.2γ=2.2 ,虚线为γ=1/2.2\gamma ={1}/{2.2}\;γ=1/2.2 。

y=255∗(x255)γy=255*{{\left( \frac{x}{255} \right)}^{\gamma }}y=255∗(255x​)γ

图2 Gamma曲线

2.4 对比度增强实例分析

基于灰度映射的对比度增强结果如下:

图3 对比度未增强

图4 对比度拉伸增强

图5 Gamma校正法对比度增强结果

基于对比度受约束的自适应直方图均衡增强Contrast-limited Adaptive Histogram Equalization (CLAHE)结果如下图所示

图6 对比度受约束的自适应直方图均衡增强结果

三、基于直方图的对比度增强技术

直方图是对图像的一种抽象形式,借助它对图像的修改或变换可以改变图像像素的灰度分布,从而达到对图像进行增强的目的。常用的方法主要有直方图均衡化和直方图规定化。

图像的直方图是一个1-D的离散函数,可写成

h(fk)=nk,k=0,1,⋯,L−1h\left( {{f}_{k}} \right)={{n}_{k}},k=0,1,\cdots ,L-1h(fk​)=nk​,k=0,1,⋯,L−1

这里nk{{n}_{k}}nk​是图像f(x,y)中具有灰度值fk{{f}_{k}}fk​的像素个数,将其写成一般的概率表达式为:

P(fk)=nk,k=0,1,⋯,L−1P\left( {{f}_{k}} \right)={{n}_{k}},k=0,1,\cdots ,L-1P(fk​)=nk​,k=0,1,⋯,L−1

这里n是图像中像素的总个数。直方图提供了原图中灰度值的分布情况,也可以说给出了对一幅图像所有灰度值的整体描述。图像的视觉效果和其直方图有对应的关系,或者说直方图的形状和改变对图像有很大的影响。

图像的累积直方图也是一个1-D的离散函数,可写成:

C(fk)=∑k=1L−1nk,k=0,1,⋯,L−1C\left( {{f}_{k}} \right)=\sum\limits_{k=1}^{L-1}{{{n}_{k}},k=0,1,\cdots ,L-1}C(fk​)=k=1∑L−1​nk​,k=0,1,⋯,L−1

累计直方图中列k的高度给出了灰度值小于和等于fk{{f}_{k}}fk​的像素的总个数,写成概率的形式是:

C(fk)=∑k=1L−1nk/n=∑k=1L−1Pk,k=0,1,⋯,L−1C\left( {{f}_{k}} \right)=\sum\limits_{k=1}^{L-1}{{{{n}_{k}}}/{n}\;=\sum\limits_{k=1}^{L-1}{{{P}_{k}}},k=0,1,\cdots ,L-1}C(fk​)=k=1∑L−1​nk​/n=k=1∑L−1​Pk​,k=0,1,⋯,L−1

3.1 直方图均衡化

直方图均衡化的基本思想是把原始图像的直方图变换成均匀分布的形式,这样就增加了图像灰度值的动态范围,从而达到了增强图像整体对比度的效果。这种变换可由图像的累积直方图得到。

具体方法是:

第一步 列出原始图像的灰度级sk,k=0,1,⋯,L−1{{s}_{k}},k=0,1,\cdots ,L-1sk​,k=0,1,⋯,L−1,其中L是灰度级的个数;
第二步 统计原始图像中各灰度级的像素数目nk{{n}_{k}}nk​;
第三步 计算原始图像直方图各灰度级的频率数;
第四步 计算原始图像的累计直方图;
第五步 取整计算gk=int⁡[(L−1)×C(fk)+0.5]{{g}_{k}}=\operatorname{int}\left[ \left( L-1 \right)\times C\left( {{f}_{k}} \right)+0.5 \right]gk​=int[(L−1)×C(fk​)+0.5];
第六步 确定映射关系fk=gk{{f}_{k}}={{g}_{k}}fk​=gk​;
第七步 统计新直方图各个灰度级的像素值;
第八步 计算新的直方图。

3.2 直方图规定化

直方图均衡化的优点是能够自动增强整个图像的对比度,但计算过程中因没有用户可以调整的参数而不易控制,处理的结果总是得到全局均衡化的直方图。实际应用中有时需要修正直方图使其变成规定形状的直方图,从而可以有选择地增强某个灰度值范围的对比度,这时可以采用比较灵活的直方图规定化方法。直方图规定化主要有三个步骤:

第一步 如同均衡化一样,对原始图的直方图进行灰度均衡化:

C(fk)=∑i=1L−1ni/n=∑i=0L−1Pi,i=0,1,⋯,L−1C\left( {{f}_{k}} \right)=\sum\limits_{i=1}^{L-1}{{{{n}_{i}}}/{n}\;=\sum\limits_{i=0}^{L-1}{{{P}_{i}}},i=0,1,\cdots ,L-1}C(fk​)=i=1∑L−1​ni​/n=i=0∑L−1​Pi​,i=0,1,⋯,L−1

第二步 规定需要的直方图,并计算能使规定的直方图均衡化的变换:

C(tj)=∑j=0N−1nj/n=∑j=0N−1Pj,j=0,1,⋯,L−1C\left( {{t}_{j}} \right)=\sum\limits_{j=0}^{N-1}{{{{n}_{j}}}/{n}\;=\sum\limits_{j=0}^{N-1}{{{P}_{j}}},j=0,1,\cdots ,L-1}C(tj​)=j=0∑N−1​nj​/n=j=0∑N−1​Pj​,j=0,1,⋯,L−1

第三步 将第一步所得的变换反转过来,即使原始直方图对应映射到规定的直方图,也就是将Pi{{P}_{i}}Pi​对应映射到Pj{{P}_{j}}Pj​来,映射方法有单映射和组映射。

3.3 结果分析

结果表明,直方图显示它们的灰度范围较窄,因而图像的对比度差,而随着对比度逐渐增强后,直方图灰度范围逐渐变宽。实验结果显示直方图归一化是一个非常有用的对比度增强工具。

图7 直方图均衡化与规定化对比度增强结果


博主简介:擅长智能优化算法信号处理图像处理机器视觉神经网络等领域Matlab仿真以及实验数据分析等,matlab代码问题、程序获取、课题选题与指导等均可私信交流


一种基于灰度映射以及直方图规定化的遥感图像对比度增强技术研究相关推荐

  1. 一种基于暗通道先验算法的图像去雾技术研究

    目录 一.绪论 二.雾霭图像模型与暗通道先验 三.透射率估计 四.大气光值估计 五.实例分析 参考文献 一.绪论 图像去雾技术,是由何凯明.孙健等人在CVPR2009提出来的,并获得当年CVPR最佳论 ...

  2. 基于熵保持映射先验的快速图像对比度增强算法的python实现

    # -*- coding: utf-8 -*- # @FileName: (2区)基于熵保持映射先验的快速图像对比度增强算法 # @Software: PyCharm # @Author : Xu # ...

  3. 一种基于Voronoi图的曲边化随机颗粒模型生成方法

    一种基于Voronoi图的曲边化随机颗粒模型生成方法 简介  在数值模拟中,除了对物体的整体模拟,还要对物体的细观层面进行模拟,以探讨裂纹的生产.扩展:或者细观层面的变化情况.特别是对于某些颗粒增强型 ...

  4. python opencv图像对比度增强_图像增强、锐化, Python-OpenCV 来实现 4 种方法!

    图像增强目的使得模糊图片变得更加清晰.图片模糊的原因是因为像素灰度差值变化不大,如片各区域产生视觉效果似乎都是一样的, 没有较为突出的地方,看起来不清晰的感觉 解决这个问题的最直接简单办法,放大像素灰 ...

  5. Python 图像对比度增强的几种方法

    Python 图像对比度增强的几种方法 图像处理工具--灰度直方图 python实现 结果 线性变换 线性变换python实现 线性变换结果 直方图正规化 直方图正规化python实现 直方图正规化结 ...

  6. 基于深度学习的高分辨率遥感图像目标检测技术目前的研究现状

    参考   基于深度学习的高分辨率遥感图像目标检测技术目前的研究现状 - 云+社区 - 腾讯云 目录 一.概述 二.通用目标检测方法 1.类不平衡问题 2.复杂背景 3.目标的尺度变化 4.特殊视角 5 ...

  7. 【笔记】基于轻量和积网络及无人机遥感图像的大豆田杂草识别

    <基于轻量和积网络及无人机遥感图像的大豆田杂草识别> 单位:吉林大学计算机科学与技术学院 作者:王生生 数据获取 设备:大疆 DJI 精灵3 相机:EXMOR 1/2.3 RGB 相机 拍 ...

  8. 【图像增强】基于matlab萤火虫算法图像对比度增强【含Matlab源码 2142期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像增强]基于matlab萤火虫算法图像对比度增强[含Matlab源码 2142期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  9. python图像对比度增强图片清晰度_Python 图像对比度增强的几种方法(小结)

    图像处理工具--灰度直方图 灰度直方图时图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率. 例子:矩阵 图片来自网络,侵删! 上面图片的灰度直方图 python实现 #!usr/b ...

最新文章

  1. Core Animation简介
  2. MetaEdit、修改IIS链接人数限制
  3. openssl1.1.0 支持php,openssl升级到1.0.21以支持nginx http2 ssl
  4. python所有文件都能用文本方式打开_python 打开文件方式讲解、常用读写操作指令(全)以及读写常见问题...
  5. linux 天文软件,新闻|开源新闻速递:天文软件 Stellarium 0.15.0 发布
  6. 开源贡献 计算_我的第一个Hacktoberfest-第一次为开源做贡献的经验
  7. mysql三大范式_MySQL学习笔记
  8. ajax中res和req,javascript – 来自AJAX调用的res.redirect
  9. DataOutputStream 类 和DatainputStream类 的主要方法简单介绍,及代码演示。
  10. JqGrid3.6最终版本今天发布了
  11. 1.请求安全-- MD5的必要性以及实际应用场景
  12. Makefile:Makefile 使用总结
  13. aix系统vi修改命令_AIX的VI命令
  14. Android仿人人客户端(v5.7.1)——新鲜事之完整篇
  15. Spring Batch 中的 chunk
  16. 删除K8S集群的/var/lib/kubelet目录报Device or resource busy错误解决方法
  17. html5简单幻灯片图片转换,用纯CSS实现简单的相册幻灯片
  18. REST-HATEOAS
  19. netty结合java_在SpringBoot中整合使用Netty框架的详细教程
  20. 阿里云域名实名认证状态查询

热门文章

  1. java面试你有什么需要问我们的吗_关于 Java 面试,你应该准备这些知识点
  2. 计算机cpu针脚,CPU针脚是什么
  3. 足球数据【文字直播】API调用示例代码
  4. Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
  5. 企业工程管理系统源码-数字化可视化项目管理平台
  6. PDM是什么意思?PDM全称及功能
  7. 【水文模型】02 水文水动力系统应用
  8. [Qt] [QDir] 创建文件夹和删除文件夹
  9. 小程序影藏溢出的gif_如何在Android手机上快速实现视频转GIF动图呢?
  10. 【Matlab 六自由度机器人】定义标准型及改进型D-H参数建立机器人模型(附MATLAB建模代码)