MATLAB计算机视觉经典应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 图像抖动

“抖动”是印刷业和出版业中常用的一种工艺。老式的针式打印机只能打印出来黑点和白点,可是黑白图片是有灰度级的,那么该如何打印出图片呢?抖动由此而生,它试图通过在白色背景上生成黑色的二值图像来给出色调变化的直观印象,可以假想一下,黑点越密,远距离观察就越黑,因此,如何控制黑点的分布就是抖动算法的核心。在MATLAB中,通过函数dither,可以将灰度图像或彩色图像经抖动处理生成二值图像。dither函数的语法格式为:

【例3-2】图像的抖动处理。

运行程序,效果如图3-7所示。

图3-7 图像的抖动效果

由此可以看到,虽然该图像为二值图像,但是轮廓依然可以显现出来,但效果远远不尽如人意。

抖动技术成为印刷业和出版业中的主要技术,特别是在纸张质量和印刷分辨率不高的情况下(如报纸的印刷),该技术是可行的。

再拓展一下,我们仅仅用了两个灰度级(0和1)就能够显示出灰度变化,如果灰度级更多,如4个,那么或许可以显示出灰度变化更好的图像,因此,基于这种原理,可以在保持图像质量的前提下,压缩图像的灰度级。这样更加利于图像在计算机中的保存或发挥其他作用。

【例3-3】以下展示8个颜色级下的抖动处理效果。

运行程序,效果如图3-8所示。

图3-8 8个颜色级下的抖动处理效果

这次可以看到,经过抖动处理之后,图像出现了好多小点,伪轮廓明显变少,图像有点模糊,但是视觉上的效果要优于没有抖动处理的效果。