图像如何看直方图波峰有什么用?可以通过如何看直方图波峰计算哪些图像参数

主要讨论如何看直方图波峰均衡囮如何看直方图波峰规定化(匹配)局部如何看直方图波峰限制对比度自适应如何看直方图波峰均衡化(CLAHE)基于如何看直方图波峰统计的图像增强

基本思想是:尽可能的使每个灰度级的像素数量相等


图1-1. 如何看直方图波峰均衡化的效果(截自《数字图像处理》)

从上圖可以看到如何看直方图波峰均衡化的作用是:使图像灰度级跨越更宽的灰度级范围,从而提高图像对比度

如何看直方图波峰均衡化的叧一个优势是:不需要额外参数整个过程是自动的

如何看直方图波峰均衡化的缺点是:拉伸后有些灰度级可能不被映射到,造成图像观感上的颗粒感

1)计算图像灰度如何看直方图波峰并进行归一化(除以总像素数)

2)计算归一化如何看直方图波峰的累积如何看直方图波峰 fHist[ L-1 ]

2. 如何看直方图波峰规定化(匹配)

如何看直方图波峰均衡化是把如何看直方图波峰变换为均匀分布的形状,如何看直方图波峰匹配是将其变换为指定的形状因此可以将如何看直方图波峰均衡看做如何看直方图波峰规定化的特例

算法的基本思路是,以如何看直方图波峰均衡化为桥梁同时将原始如何看直方图波峰和目标如何看直方图波峰做均衡,这样从理论上看两个均衡化的如何看直方图波峰是一样的(当然实际情况肯定有差别)。不妨假设原始图的均衡化如何看直方图波峰为 SHist[ L-1 ] 目标图的均衡化如何看直方图波峰为 DHist[ L-1 ]。对原始如何看直方圖波峰中第 i 级查找DLhist中与SHist[ i ]最接近的那一级作为 i 的映射灰度

在如何看直方图波峰比较这一块的算法实现有单映射规则SML组映射规则GML两种方法:

/*计算各自的累积如何看直方图波峰*/

有时需要突出图像中小范围的细节,但前面的如何看直方图波峰均衡以及一文提到的灰度变换方法都昰基于全局的灰度分布

局部如何看直方图波峰处理大致有3种实现方法:

1)将原始图片划分成不重叠的子块在每个子块内做如何看直方图波峰处理(如如何看直方图波峰均衡)

操作简单,但输出图像会有块效应

2)类似模板卷积的方式以待处理的点为中心,取其邻域为子块在子块内做如何看直方图波峰处理,处理结果仅映射到该点

可以消除块效应但需要对每个点计算一次如何看直方图波峰处理,效率很低

3)前两种方法的结合版不再逐像素移动,步长小于子块宽度以确保两个相邻子块有重叠;每个子块做如何看直方图波峰映射后的结果賦值给子块内所有点这样每个点会有多次赋值,最终的取值为这些赋值的均值

图3-1对比了全局如何看直方图波峰均衡和局部如何看直方图波峰均衡(方法2子块尺寸为11*11)

图3-1. 原始图(左),全局如何看直方图波峰均衡(中)局部如何看直方图波峰均衡(右)

4. 限制对比度自适應如何看直方图波峰均衡化(CLAHE)

CLAHE在局部如何看直方图波峰均衡化(又称自适应如何看直方图波峰均衡化AHE)的基础上,对每个子块如何看直方图波峰做了限制很好的控制了AHE带来的噪声,还可以用来做去雾

对CLAHE做了较为详细的说明

step1. 扩展图像边界,使其能够刚好切分为若干子块

step2. 對每个子块计算如何看直方图波峰

step3. 对每个子块如何看直方图波峰的每个灰度级,使用预设的limit值做限定同时统计整个如何看直方图波峰超过limit的像素数

step5. 遍历原始图像每个点,考虑该点所在子块及右、下、右下一共4个子块的tileLut以原始灰度值为索引得到4个值,然后做双线性插值嘚该点变换    后的灰度值

   双线性插值的方式避免了为每个像素点做以其为中心的如何看直方图波峰计算

图4-1 对比了全局如何看直方图波峰均衡、AHE和CLAHE的效果可以看到,CLAHE对噪点的控制是最好的

5. 基于如何看直方图波峰统计的图像增强

令归一化的如何看直方图波峰为 p(r) 这样像素的均值為,由此可得到 r 关于均值 m 的 n 阶矩如果取n=2,则得到灰度方差

在实际计算中常用取样均值和取样方差来省去如何看直方图波峰的计算:

假设现在需要增强图像暗区域;对每个点计算其邻域窗口的灰度均值和方差,将两者分别与全局的灰度均值和方差比较如果局部均值尛于指定阈值与全局均值之积,那么则认为该点处于暗区域再判断局部方差与全局方差的关系,如果局部方差落在某个范围内()则說明该点的对比度较低,那么可以对其乘以某个值以突出特征低阈值的设置是为了避免增强实际恒定的区域

[1] 《数字图像处理》 冈萨雷斯

[2] 江巨浪等, 保持图像亮度的局部如何看直方图波峰均衡算法

如何看直方图波峰如何看直方圖波峰要先存成jpg图片形式,后面用的要是jpg图像 函数voi

汇编语言是一门低级程序设计语言,在数以千计的计算机语言中有着不可替代的重偠地位,广泛地用于开发操作系统内核、设备驱动程序等随着近年来物联网、嵌入式系统的发展,汇编语言在行业中的地位也再次攀升在2017年1月的TIOBE排行榜上,再次进入前十对大多数学习计算机的人士而言,是理解计算机系统核心知识的一个桥梁在人才培养中也起着特殊的作用。课程面向计算机初学者介绍汇编语言程序设计基础的部分。 绍寄存器、内存、程序结构、模块化程序设计、中断等内容课程重视对学习方法的指导和引导,提倡和支持用实践的方式开展学习目标是培养学习者的自学能力和实践能力,以此支持对最新的汇编語言开发技术的学习

我要回帖

更多关于 图像直方图 的文章

 

随机推荐