图像增强算法之去抖动算法

图像基础知识 专栏收录该内容
36 篇文章 8 订阅

                               图像增强算法之去抖动算法

对LCD面板的色彩显示能力,通常用在每一种色彩通道上,液晶面板能显示灰度的位数来加以描述。 LCD 的每个点通过R、G、B 三通道进行显示,首先影响色彩位数的是LCD 所使用的驱动IC 的不同,6bit 驱动IC 能够显示64 级灰度,而8bit 驱动IC 则能够显示256 级灰度。灰度越多,说明面板能够显示的色彩也越多,对细节和层次的表现力越强。如果在每个色彩通道上能显示256(2^{8}=256)级灰度,可显示16.7M 的色彩,就称其为8bit 面板,这也就是真彩面板;而对于大多数的应用场合,如便携设备上装备的中小尺寸LCD 和中低端的桌面LCD 中,则采用的6bit 或更少位数的伪真彩面板。虽然,伪真彩面板可以降低成本,并且可以减少驱动IC 的最大驱动路数,进而降低在可视角度以及对比度等方面的设计难度,但是,由于显示的色彩数的大幅减少(物理上6bit 面板能显示的色彩还不到8bit 面板的2%),在表现图像渐变时常常会伴有明显的阶梯状条纹,极大的影响了显示效果。 抖动处理通常被用在图像输出设备只能同时显示有限的灰度级的场合,它可以增加单色面板的灰度级和伪真彩面板的色彩数,被实践证明对量化了的图像的色彩增强非常有效。

为了更直观的理解为什么在很多显示应用场合只显示伪彩色图像,在这里引入位图切割的概念来解释位平面在图像显示中的应用。设一般图像中的每一个像素都由8bit表示,即真彩色图像,假设图像是由8个1bit 平面组成,其范围从最低有效位的位平面0 到最高有效位的位平面7。在8bit字节中,平面0包含图像中像素的最低位,而平面7 则包含最高位。图4-1 说明了这些概念,图4-3显示了在图4-2中描述的各种位平面。注意较高阶位(特别是前四位)包含了大多数在视觉上很重要的数据。其他位平面对图像中更多的微小细节有作用。把数字图像分解成位平面,对于分析每个bit 在图像中的相对重要性是有用的,这是一个辅助决定量化一个像素的位数是否充足的过程。由此可见,在很多对显示要求不高的场合,只需要用较高位平面就可以显示出一幅图像中的大部分信息,从而丢失一部分图像细节,因此,才会出现65536(2^{16})色和262144(2^{20})色等常见的显示应用场合。 

不同bit表示的图像

 

 

4.1 半色调处理算法原理

半色调技术应用于印刷工业已有一个多世纪,应用在数字输出设备上也有40 多年,如今已广泛应用到打印、印刷、显示设备,以及数字图像的压缩存储、图像的传输等领域。

半色调处理要实现的基本功能就是要消除由于图像的非连续调输出而造成的阶梯状条纹,从而达到图像色彩增强的效果,并有效地消除图像固有的块状效应缺陷,使图像更加平滑、柔和,进一步改善图像的质量。其采用的算法很大程度上决定着输出图像的质量、系统结构能否实现以及实现成本的大小。而图像色彩增强技术的算法比较多,基本上可根据用户的设计需求来选择合适的算法。

数字半色调技术是基于人眼的视觉特性和图像的成色特性,利用数学和计算机等工具,在二值设备或多色二值设备上实现图像再现的一门技术,是将连续调图像经过处理后再输出以实现图像阶调再现的基础性研究。

纵览数字半色调技术的研究,总的趋势是:对灰度图像而言,都是对已有的方法进行改进和整合;对彩色图像而言,多数是结合彩色图像的特点将处理灰度图像的方法用于彩色图像的再现。

从规则抖动(ordered dithering)、误差扩散(error diffusion)、蓝噪声半色调(blue noise halftoning)、点扩散(dot diffusion)、DBS(direct binary search)、LUT(look-up-table)半色调到AM/FM 半色调等方法,可以看出,数字半色调技术的原理并没有改变,主要是将量化后的误差尽可能地扩散到与之相邻的像素上,使得再现图像与原图像的误差尽可能的小,它将随着计算机技术、数字图像处理技术以及数学算法的灵活运用而不断地提高。

目前工业上应用最广泛和成熟的半色调算法就是抖动算法和误差扩散法,以下将详细给出这两类算法的分析和比较。

4.1.1 规则抖动

规则抖动是指在抖动过程中使用一个周期性的、确定的抖动矩阵,而这里所指的抖动矩阵也可以称为抖动模板。规则抖动中应用较为广泛的是Bayer 抖动、Clustered-dot 半色调和Dispersed-dot 半色调。而后两种主要由于算法的自身特性,主要应用于打印设备,而本文我们主要研究的是可用于LCD 显示的Bayer 抖动。

Bayer 抖动实质上就是像素值与其抖动矩阵中的相应的阈值比较。具体来说,就是把根据不同抖动位数选定的抖动矩阵置于目标图像的子区域内,使得该区域内的每一个像素与抖动矩阵中的每一个阈值一一对应起来。

下面以一个简单的2bit 抖动为例,对Bayer 抖动算法进行阐述,并最终给出针对不同抖动位数的Bayer 抖动矩阵。

对于一个2×2 像素块的颜色,如果只有两种选择,假设要么所有像素全为红色,要么像素值全为0,这样在视觉效果上也就仅有上述的两种情况。但是如果在这四个像素中有两个值为红色,另两个值为0,这样将会产生一种红色一半亮度的视觉效果,同理,共可产生5 级灰度,如图4-5 所示。

这个过程可用图4-6来说明。假定在2×2 像素块中每一个像素对应一个8bit 的数据,但输出设备只能使用高6位,因此如果没有抖动过程的支持,低两位将会被丢失。考虑任意的8bit 像素值A8h(1010_1000),其高6 位用16 进制数“2A”表示,如果不用抖动,像素值A9h(1010_1001)、AAh(1010_1010)、ABh(1010_1011)将显示和A8h 同样的像素值“2Ah”。而像素值ACh(1010_1100)有不同的高六位,所以ACh 比A8h 有更高的亮度。因此如果不加抖动处理,仅能精确显示A8h 和ACh。移除低两位,这些值将分别为“2Ah”或“2Bh”。

抖动处理为“丢失”的像素值A9h、AAh、ABh 提供了显示的方法,通过显示合并的2×2 的像素块的值来加以实现,该像素块内的平均强度就是“丢失”的值,如图4-6 所示。为了给最大强度值留有余地,ABh 不作任何变换,A8h、A9h、AAh 则通过抖动算法进行修改。

低2 位的抖动只有四种矩阵供选择,如图4-6 的“情况 1”至“情况4”。抖动矩阵中“0”表示对应位置的输入值不作任何改变,“1”表示对应位置的输入值将减弱到下一个可以显示的值。可将上述四种情况综合为图4-7 中“2bit 抖动矩阵”的抖动矩阵,其中像素位置的数字表示低2 位:00 = blank,01 =“1”,10 =“2”,11 =“3”。

如果输入像素值低2 位为“00”,只有与抖动矩阵中空白处对应的像素强度值不变,其余3 个都减弱到下一个可显示的像素值;

若输入像素值低2 位为“01”,与抖动矩阵中空白及标有“1”的位置的像素点值保持不变,其余2 个都减弱到下一个可显示的像素值;

若输入像素值低2 位为“11”,四个像素点都保持输入值不变。以上过程是2bit 抖动的算法,对于1bit,3bit,4bit 抖动的抖动矩阵见图4,其算法与2bit 抖动算法类似。

4.1.2 误差扩散

误差扩散技术主要思想是,一旦一个像素点被量化后,它就存在误差,这些误差将影响到它周围的像素点。这种由误差而影响其周围的量化的像素点就被称作为扩散,这意味着这个误差被分成很多组分从而加到了临近像素的灰度值上。通过误差的扩散,系统处于自我修正状态的负反馈系统。

误差扩散的数字半色调算法,最先由Floyd 等人提出。这种算法是一种邻域处理过程,它将当前像素的量化误差按一定比例扩散到相邻的像素上。因此,局部的量化误差对相邻像素点而言是一种补偿,使得误差扩散系统具有自校正的能力。而且,能够保证在总体上,在处理前后图像的总灰度或总色彩数相一致。

误差扩散算法的核心是一个对量化误差进行频谱整形的数字滤波器,目前最具代表性的是Floyd 和Steinberg 所设计的滤波器(以下简称为FS 滤波器),该滤波器在量化误差为白噪声时的应用效果最为理想。由于对彩色图像进行颜色量化属于多值量化过程(即所谓的多色调处理),上述FS 滤波器的理想应用条件—量化噪声为白噪声无法满足,因此,直接使用FS 滤波器进行多色调误差扩散虽可以在一定程度上提高量化图像的质量,但处理后的彩色图像在某种程度上仍然存在图案化、颗粒噪声以及伪轮廓等影响图像质量的问题。

FS 滤波器的结构如图4-9 所示,n 为当前处理的像素,0 为已处理的像素g1,g2,g3,g4 为未处理像素,滤波器的脉冲响应g1=7/16,g2 =1/16,g3=5/16, g4=3/16,其滤波过程也就是将当前处理像素的量化误差以上述权重传递给未处理的像素。算法首先比较x 像点的灰度值与阈值,该像点记为1 或0,即白色或黑色,然后计算误差,分配误差到周围的点,修改周围点的灰度值。该滤波算法中是将误差的7/16 加到x右边第一个像点上,误差的3/16 加到下一行左边第一个点上,误差的5/16 加到下一行正对的像点上,误差的1/16 加到下一行右边第一个点上,这样把x 像点的误差分散到周围的像点上。反复进行该过程,对图像中的每个像点进行如此的半色调化和灰度值的修正,最后得到一幅反映原图层次关系的半色调图。

除了Floyd-Steinberg 滤波器外,很多学者还提出了其它形式的滤波器。其滤波器矩阵如图4-10 所示。从图4-10 中可以看出,其它滤波器结构形式和FS 滤波器类似,不同的是所涉及的扩散点数量不同。一般情况下进行误差分散的点越多,显示图像的效果会越好,但其计算速度和硬件开销也越大。

 

  • 2
    点赞
  • 1
    评论
  • 21
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值