图像增强是从像素到像素的操作,是以预定的方式改变图像的灰度直方图。有时又称为对比度增强,灰度变换。点运算不可能改变图像内的空间关系,输出像素的灰度值由输入像素的值决定。其作用:

对比度增强:扩展感兴趣特征的对比度。

光度学标定:去掉图像传感器的非线性影响。所谓光度学,就是在可见光波段内,考虑到人眼的主观因素后的相应计量学科称为光度学。标定即计算内参,在光度学范畴计算内参。

显示标定:克服图像保存和显示过程中的非线性因数。

轮廓线:进行阈值化

裁剪:输出灰度级裁剪到0~255之间。

首先,解释下什么是对比度:

通俗的讲,就是明暗的对比程度,通常表现了图像画质的清晰程度,计算公式:
 
例如:
设图像L = {1 3 9 9
          2 1 3 7
          3 6 0 6
        }
则C = [(1^2 + 2^2) + (2^2 + 6^2 + 2^2) + (。。。。。) +。。。]/ 48 = 16.6818。
 
 
实际上,对比度反映了一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小,差异范围越大代表对比越大,差异范围越小代表对比
 
越小,好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。但对比率遭受和亮度相同的困境,现今尚无一套有效又公正的标准来
衡量对比率,所以最好的辨识方式还是依靠使用者眼睛。

 

灰度变换(图像增强)的目的是为了改善画质,使图像的显示效果更加清晰。主要包含:

线性对比度展宽

对比度展宽的目的是将人所关心的部分强调出来。其原理是:进行像素级的点对点的灰度级映射。如下:

f(i,j)表示原图,g(i,j)表示处理后的图,要求g,f都在[0,255]区间变化,且g的效果要优于f.则该映射关系的计算公式为:
在 [0,a)区间,g(i, j) = α * f(i,j);
在[a, b)区间,g(i,j) = β * (f(i,j) - a) + ga;
在[b, 255)区间,g(i,j) = γ*(f(i,j) - b) + gb;
以上,α,β,γ都是斜率。这个就叫对比度展宽。
此时,如果我们只显示指定区间的g,即α,γ都设为0.g(i,j) = β1 *(f(i,j) - a) ; 则上面的映射变成:
这个过程叫做灰度窗切片,得到灰级窗。即只显示指定灰级范围内的信息。将灰度值落在一定范围内的目标进行对比增强。
我们将所需要检测的目标与画面中的其他部分分离开,目标部分置为0/255,非目标部分置为255/0,即α,γ置0的过程,这个叫灰度窗切片。
对比度展宽的效果:
动态范围调整
动态范围,是指图像中所记录的场景中从暗到亮的变化范围,由于人眼所可以分辨的灰度的变化范围是有限的,所以当动态范围太大时,很高的亮度值把暗区的信号都掩盖了。
通过动态范围的压缩,可以将所关心部分的灰度级的变化范围扩大。
 
对于动态范围的调整分为:
1.线性动态范围调整。
这个过程就是上面的对比度展宽后,通过灰度窗切片,得到灰级窗的过程。此时,灰级窗内的计算公式为:
g = 255/(b - a) *(f(i,j) - a);
 
线性动态范围调整的效果:
 
 
2.非线性动态范围调整:
因为人眼对信号的处理是有个近似对数算子的环节,因此,通常用取对数的方法。
g(i,j) = c * log10(1 + f(i,j)),其中,c表示你需要抑制的灰度上限。
 
 
 
 
例如,我们需要将暗的部分扩展,而将亮的部分抑制,此时,g(i,j) = 255 * log(f(i,j) + 1);
 
非线性动态范围调整的其他方法:这里根据中间范围的灰度级的运算进行分类。
1.增加中间范围灰度级而只使暗/亮像素做较小改变。公式:f(x) = x + Cx(Dm - x),其中,Dm是灰度级的最大值,C定义了中间灰度范围内的增加(c> 0)或者减小(c < 0),给
个demo:
 
 
2.降低较亮或较暗物体的对比度来增强灰度级处于中间范围的物体对比度,中间斜率大于1,而两端斜率小于1。
α:(0,1);

对应灰度:

3.压低在中间灰度级处的对比度,而在较亮或较暗部分的对比度增强,中间斜率小于1,两端大于1.

 
曲线与2类相反,第2类和第3类一起给个demo:
非线性动态范围调整效果:
直方图均衡化处理
直方图均衡法的思想是,对在图像中像素个数较多的灰度级进行展宽,而对像素个数较少的灰度级进行缩减,从而达到清晰图像的目的。
其数学原理实际就是从一个分布(输入的亮度直方图)被映射到另一个分布(一个更宽,理想统一的亮度值分布),也就是映射函数应该是一个累积分布。可以用累积分布函数对原始分布进行映射作为均衡拉伸分布。
原理:
经过点运算使一输入图像转换成在每一灰度级上都有相同的像素点数的输出图像(输出的直方图是平的),这对于在进行图像分割或分割之前将图像转换为一致的格式将是非常
有用的。经过均衡化后,每一级的像素个数为A0/Dm,Dm是灰度级的最大灰度值,A0是图像的面积。
均衡化方法:
1.求出原图的直方图,h = {x0,...xi}i 在0~255范围内。
2.计算灰度分布概率,图像总体像素N = l * w,每个灰度级的像素个数在整个图像中所占的百分比。hs(i) = h(i) /N (i 在 0~255)。
3.计算灰度级的累计分布hp:
4.计算新图像的灰度值。
直方图均衡化效果:
伪彩色技术
由于人眼识别不同彩色的能力比分辨不同灰度级的能力强,因此,把人眼无法区别的灰度变化,施以不同的彩色来提高识别率,这便是伪彩色增强的基本依据。
鉴于灰度图像要生成一幅彩色图像是一个一到三的映射,显然少信息量获得多信息量必然基于估计原理,也就是说,对未知的部分,通过各种手段进行合理的估计,研究的目的
不同,则估计的方法也不同,有以下几种方法:
1.基于亮度表示的伪彩色方法:
依照对温度的描述方式,当温度较低,我们会想到蓝色,又称冷色调,当温度较高,我们会想到红色,又称为暖色调,根据人感官上的这一特性,将亮度低的映射为蓝色,亮度
高的映射为红色。由此,可以按照如下映射关系进行伪彩色处理:
 
2.基于区域表示的伪彩色方法:
该伪彩色技术是对原图进行了预处理,将识别出属于不同性质的区域给不同的色彩。主要用于医学诊断,目的是突出病灶。

paper 106:图像增强方面的介绍的更多相关文章

  1. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  2. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  3. pg 资料大全1

    https://github.com/ty4z2008/Qix/blob/master/pg.md?from=timeline&isappinstalled=0 PostgreSQL(数据库) ...

  4. PostgreSQL相关的软件,库,工具和资源集合

    PostgreSQL相关的软件,库,工具和资源集合. 备份 wal-e - Simple Continuous Archiving for Postgres to S3, Azure, or Swif ...

  5. (转)Android分布式编译学习(一)distcc实现分布式编译 —— Ubuntu12.04上部署distcc分布式编译

    转自:http://blog.csdn.net/eqiang8271/article/details/17144411   版权声明:本文为博主原创文章,未经博主允许不得转载. Android代码庞大 ...

  6. Linux C定时器使用指南

    使用定时器的目的是为了周期性的执行某一任务,或者是到了某个指定时间去执行某一任务.要达到这一目的,一般有两个常见的方法.一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进 ...

  7. U-Net卷积神经网络

    由于项目需要,用U-NET跑一个程序来对医学影像进行分割(segmentation),因此跑去看了下这篇论文(paper),下面会介绍一下U-Net的框架及要点,如果哪里有写的不对的,或者好的建议,欢 ...

  8. PCL的学习必要性、重要性、意义及最初——持续修改中

    为什么学习PCL:图像描述:各种维度图像的逻辑描述形式  ^-^ 且点云库是机器人学领域的必备基础库,ICRA和IROS的计算机视觉相关一般都使用了PCL库,PCL库也成为ROS的基础部分,与机器人操 ...

  9. 学习NLP:《自然语言处理原理与技术实现(罗刚)》PDF+代码

    自然语言处理技术已经深入我们的日常生活.我们经常用到的搜索引擎就用到了自然语言理解等自然语言处理技术.自然语言处理是一门交叉学科,涉及计算机.数学.语言学等领域的知识. <自然语言处理原理与技术 ...

随机推荐

  1. 转载 Android快捷键 转载

    一.实用类快捷键 1 常用熟悉的快捷键 CTRL+C(复制).CTRL+X(剪切).CTRL+Z(撤销).CTRL+F(查找).CTRL+H(搜索文件或字符串).CTRL+Y(重做).CTRL+/(双 ...

  2. C语言(2)

    C语言(2)---变量 基本格式: 变量类型  变量名1[,变量名2,变量名3,...变量名n]: 注意: 1.在C语言中如果申请一个变量,里面存放小数,则用float表示,且在输出时需要注意prin ...

  3. 延迟加载图片插件LazyLoad.js的使用方法

    我们常常会见到很多网页的图片并不是一打开页面就全部加载的,而是浏览到当前的图片位置才显示出来.这是怎么实现出来的呢? 其实这就是目前较为流行的“延迟加载”(Lazy Load)技术,灵感来自Matt ...

  4. MySQL数据库基本指令

    对MySQL的指令不太熟悉,在此特别整理了一下一些常用的指令: 约定:大写字母写SQL关键字和函数名,小写字母写数据库.数据表和数据列的名字.(下述代码更新不同步,部分代码未依据此约定) 1 数据库的 ...

  5. make:cc 命令未找到的解决方法

    安装redis时遇到的问题 make:cc 命令未找到的解决方法 没安装gcc,然后安装 yum install gcc yum install gcc-c++

  6. Mac 系统下cocos2dx 环境变量设置

    Mac 系统环境变量设置   vim ~/.bash_profile    export PATH=$PATH:/Users/wangchengcheng/Downloads/LearningSoft ...

  7. jquery 温故而知新 animate动画的一些坑

    注意1,只有hover事件后才能紧跟着第二个回调函数(mouseleave),尽量还是不使用mouseover事件了 注意2,.stop(false,true); 结束动画,在动画队列中删除自己,并且 ...

  8. EDI - Biztalk Sample

    1. EDI Control - Scripting Usage:

  9. BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息

    SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...

  10. IOS第九天(3:QQ聊天界面通知的使用)

    #import <Foundation/Foundation.h> #import "Person.h" #import "XQCompany.h" ...