改善降质图像的方法:1.图像增强;2.图像复原

其中图像增强的主要内容如下:

也有人将空间域变换划分为:

灰度变换也被称为图像的点运算(只针对图像的某一像素点)是所有图像处理技术中最简单的技术,其变换形式如下:s=T(r)
其中,T是灰度变换函数;r是变换前的灰度;s是变换后的像素。
图像灰度变换的有以下作用:

  • 改善图像的质量,使图像能够显示更多的细节,提高图像的对比度(对比度拉伸)
  • 有选择的突出图像感兴趣的特征或者抑制图像中不需要的特征
  • 可以有效的改变图像的直方图分布,使像素的分布更为均匀

灰度变换函数描述了输入灰度值和输出灰度值之间变换关系,一旦灰度变换函数确定下来了,那么其输出的灰度值也就确定了。可见灰度变换函数的性质就决定了灰度变换所能达到的效果。用于图像灰度变换的函数主要有以下三种:

  • 线性变换 (图像反转)
  • 对数和反对数变换:扩展图像中的低灰度区域,压缩图像中的高灰度区域,能够增强图像中的暗色区域的细节;反对数变换与此相反。对数变换还有个重要作用是,能够压缩图像灰度值的动态范围,在傅立叶变换中能够显示更多的变换后的频谱细节。
  • 伽马变换:主要用于图像的校正,根据参数γγ的选择不同,能够修正图像中灰度过高(γ>1γ>1)或者灰度过低(γ<1)


上图给出了几种常见灰度变换函数的曲线图,根据这几种常见函数的曲线形状,可以知道这几种变换的所能达到的效果。例如,对数变换和幂律变换都能实现图像灰度级的扩展/压缩,另外对数变换还有一个重要的性质,它能压缩图像灰度值变换较大的图像的动态范围。

线性变换

令r为变换前的灰度,s为变换后的灰度,则线性变换的函数:s=a⋅r+b
其中,a为直线的斜率,b为在y轴的截距。选择不同的a,b值会有不同的效果:

  • a>1a>1,增加图像的对比度
  • a<1a<1,减小图像的对比度
  • a=1且b≠0a=1且b≠0,图像整体的灰度值上移或者下移,也就是图像整体变亮或者变暗,不会改变图像的对比度。
  • a<0且b=0a<0且b=0,图像的亮区域变暗,暗区域变亮
  • a=1且b=0a=1且b=0,恒定变换,不变
  • a=−1且b=255a=−1且b=255,图像反转。

在进行图像增强时,上述的线性变换函数用的较多的就是图像反转了,根据上面的参数,图像反转的变换函数为:s=255−s。图像反转得到的是图像的负片,能够有效的增强在图像暗区域的白色或者灰色细节。其效果如下:

图像反转的实现是比较简单的,在OpenCV中有对Mat的运算符重载,可以直接Mat r = 255 - img或者~img来实现。

对数变换

对数变换的通用公式是:s=clog(1+r)

其中,c是一个常数,假设r≥0,根据上图中的对数函数的曲线可以看出:对数变换,将源图像中范围较窄的低灰度值映射到范围较宽的灰度区间,同时将范围较宽的高灰度值区间映射为较窄的灰度区间,从而扩展了暗像素的值,压缩了高灰度的值,能够对图像中低灰度细节进行增强。从函数曲线也可以看出,反对数函数的曲线和对数的曲线是对称的,在应用到图像变换其结果是相反的,反对数变换的作用是压缩灰度值较低的区间,扩展高灰度值的区间。

对数变换,还有一个很重要的性质,能够压缩图像像素的动态范围。例如,在进行傅立叶变换时,得到的频谱的动态范围较大,频谱值的范围通常为[0,106][0,106],甚至更高。这样范围的值,显示器是无法完整的显示如此大范围的灰度值的,因而许多灰度细节会被丢失掉。而将得到的频谱值进行对数变换,可以将其动态范围变换到一个合适区间,这样就能够显示更多的细节。


左边为原图像,其拍摄环境较暗,无法分辨出很多的细节;右边为变换后的图像,整个图像明亮许多,也能分辨出原图中分辨出更多细节。

伽马变换:

伽马变换的公式为:,其中c和γ为正常数。
伽马变换的效果与对数变换有点类似,当γ>1时将较窄范围的低灰度值映射为较宽范围的灰度值,同时将较宽范围的高灰度值映射为较窄范围的灰度值;当γ<1时,情况相反,与反对数变换类似。其函数曲线如下:

当γ<1时,γ的值越小,对图像低灰度值的扩展越明显;当γ>1时,γγ的值越大,对图像高灰度值部分的扩展越明显。这样就能够显示更多的图像的低灰度或者高灰度细节。
伽马变换主要用于图像的校正,对灰度值过高(图像过亮)或者过低(图像过暗)的图像进行修正,增加图像的对比度,从而改善图像的显示效果。

直方图均衡化:

直方图均衡化的基本思想:把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。(变换后的图像的灰度级减少)

计算过程如下:

具体的实现流程如下:

使用的方法是灰度级变换:s = T(r) 

原理:

s=T(r) 0≤r≤1

T(r)满足下列两个条件:

(1)T(r)在区间0≤r≤1中为单值且单调递增

(2)当0≤r≤1时,0≤T(r) ≤1

条件(1)保证原图各灰度级在变换后仍保持从黑 到白(或从白到黑)的排列次序

条件(2)保证变换前后灰度值动态范围的一致性

Pr(r)是r的概率密度函数,Ps(s)是s的概 率密度函数,Pr(r)和T(r)已知,且T-1(s) 满足上述条件(1),所以有

已知一种重要的变换函数:

关于上限的定积分的导数就是该上限的积分值 (莱布尼茨准则)

对于离散值:

其中rk 是第k个灰度级,k = 0,1,2,…,L-1.

  nk是图像中灰度级为rk的像素个数.

  n是图像中像素的总数.

已知变换函数的离散形式为:

sk称作直方图均衡化 将输入图像中灰度级为rk(横坐标)的像素映射 到输出图像中灰度级为sk (横坐标)的对应像素得到.

图像处理入门:图像增强之灰度变换相关推荐

  1. 数字图像处理7:图像增强之灰度变换

    图像处理入门:图像增强之灰度变换 2018年10月28日 15:48:13 M_Z_G_Y 阅读数:42 改善降质图像的方法:1.图像增强:2.图像复原 其中图像增强的主要内容如下: 灰度变换也被称为 ...

  2. 传统基本图像处理方法:图像增强(灰度变换、直方图增强、空间域滤波、频率域滤波)、图像分割、图像配准等

    图像处理设计主要有以下几种处理:图像增强(灰度变换.直方图增强.空间域滤波.频率域滤波).图像分割.图像配准等等. 图像增强: 图像增强作为基本的图像处理技术,目的在于通过对图像进行加工使其比原始图像 ...

  3. [Python图像处理] 三十五.OpenCV图像处理入门、算数逻辑运算与图像融合(推荐)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. OpenCV数字图像处理基于C++:灰度变换

    OpenCV数字图像处理基于C++:灰度变换 1.1 灰度变换概念 在图像预处理中,图像的灰度变换是图像增强的重要手段,灰度变换可以使图像对比度扩展,图像清晰,特征明显,灰度变换主要利用点运算来修正像 ...

  5. 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)

    数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...

  6. 免费送书啦!《 OpenCV图像处理入门与实践》一本全搞定

    OpenCV 的基础图像操作都只是针对图像中的像素点,并不是直接对图像整体进行的操作.而很多时候并不能仅通过改变像素点来进行图像的操作,为此我们需要学习关于图像的算术操作. 1.图像加法 对于两张相同 ...

  7. 图像处理入门 100 题,有人把它翻译成了中文版!

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 但是,这份资源教程是由日本人写的,日文版,读起来非常不方便.好消息,最近我在逛 GitHub ...

  8. c#图像处理入门(-bitmap类和图像像素值获取方法)

    c#图像处理入门 -bitmap类和图像像素值获取方法 一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义 ...

  9. 职业:图像处理入门教程

    公司里有哥们想学图像处理,认为这东西看起来挺简单,应该可以很快入门进阶.他人之心,吾忖度之,不能再忖度了,否则会变成以小人之心度君子之腹.所以,应哥们的要求,我给他介绍一个图像处理入门教程.看起来入门 ...

  10. opencvpython教程百度云资源_Python+OpenCV图像处理入门,视频教程下载

    课程介绍: 李老师讲课生动.深入浅出,出版OpenCV编程案例详解.Python-OpenCV图穷录.MATLAB图像处理.MATLAB图像案例教程等在线课程. 本课程系统概括了Python-Open ...

最新文章

  1. 最快69秒逆向DRAM地址映射,百度设计的这款逆向工具如何做到快速可靠?
  2. CSS中background-position的使用
  3. 梁戈碧:促数据中心转型 释放数据洞察力
  4. 一般屏幕的3D模型是公开的吗?
  5. C和C++数据结构算法
  6. Nginx 笔记与总结(11)Nginx + php-fpm + MySQL 安装 ecshop
  7. 深度优化sql 查询, 提升性能一百倍是什么概念?
  8. 宿松县事业单位计算机基础知识,计算机基础知识试题(事业单位考试)
  9. 【PYTHON笔记】:文件打开和关闭
  10. php团队规范,PHP团队 编码规范 代码样式风格规范
  11. windows.2003.应用网络负载平衡管理器实现均衡负载与双机热备
  12. 苹果七绕过基带激活2020_【最新!】绕过苹果ID可激活
  13. Python常用模块 之 hashlib模块
  14. 用python在大麦网抢票_大麦网自动抢票工具
  15. 聊聊我在腾讯和字节工作感受
  16. 战神引擎php,战神引擎常用脚本接口
  17. CentOS7非桌面版关闭休眠和设置关闭盖子不休眠(server)
  18. 易语言 获取TeamViewerID密码 部分代码
  19. Science封面6连发:人类最完整的基因组测序完成!
  20. 我喜欢的photo,images....

热门文章

  1. 人是怎么把天聊死的(引以为鉴)
  2. 三年大型电商网站心得(减库存篇)
  3. 移动机器人里程计校准的方法
  4. 入门到放弃,这些知识点菜鸟都给你整理好了!(建议收藏)
  5. 回忆一下带学生工作室时的一些趣事
  6. java详细学习路线及路线图
  7. 我周末参加了个互联网架构大会!
  8. 如何使用 multiparty 工具库在 Node.js 应用里解析 multipart form-data 格式的请求
  9. CentOS 7 CA证书服务器搭建
  10. R语言初学——包的应用