彩色图像抖动简介

来源:互联网 发布:qq动态头像软件 编辑:程序博客网 时间:2024/05/17 06:22

彩色图像抖动原理

如上节所述,当打印彩色图像,能提供的颜色深度较少时,我们可以使用误差传递的方式来弥补颜色深度的缺失。常用的误差传递模板矩阵有,原理类似于灰度图像的处理:
这里写图片描述

也有更大的误差模板矩阵,本次实验我们使用的是上图右侧的模板。这个误差传递模板的意思是同时对于当前原图坐标(x,y)像素的R、G、B三个通道,即对应这个矩阵的左上角,若在打印过程中存在误差,即原图与打印图像因颜色深度造成的像素值不同,则将这个误差乘以对应模板的数值加到自身、右、下、右下像素中,遍历完整个图像即可输出图像。为了使得效果更好需要采取S型扫描,从左遍历到右之后需要从右到左遍历,这样一直交错着方向遍历得到的误差的扩散效果更好一些。

彩色图像抖动算法

1、首先来看看彩色图像抖动与灰度图像抖动的不同之处:

这里写图片描述

在这里是因为彩色的图像的色彩深度不够,所以需要将计算的误差加到原来的像素上,在计算误差的时候,ss的值一般设定为8.这是经典的Floyd-Steinberg滤波抖动算法对彩色图像的处理结果。

2、下面来看看误差扩散的具体的实现:

这里写图片描述

误差扩散的实现部分和灰度图像的处理基本上是一样的。

3、处理之前的图片如下图1所示,处理之后的图片如下图2所示:
这里写图片描述
可以看出来基本是差不多的,那么再来看一组别的照片。
这里写图片描述

如上图3是处理之前的图片,图4是处理之后的图片,图1和图2不大能看出差别,但是图3和图4就可以很明显的看出是处理过的。完整代码参见GitHub

4、彩色图像抖动处理的其它方法
MBVC算法
边缘增强弱文理算法
(具体请见文章:孟小杰, 曾 平—— 一种彩色图像矢量误差分散半调方法( 西安电子科技大学外部设备研究所,陕西西安710071)

5、彩色图像处理的颜色选取办法
中位切分法
八叉树算法
流行色算法
具体的介绍请见链接:
http://www.360doc.com/content/14/0414/10/110467_368728980.shtml

实验总结

图像抖动的具体结果不仅依赖于自己选择的抖动算法,同时也依赖于选择的图片,相同的处理方式对于不同的图片处理的效果可能不同,相同的图片不同的处理方式得到的结果也可能不一样,具体的还是要多实践才能清楚吧!

参考:
http://www.tannerhelland.com/4660/dithering-eleven-algorithms-source-code/
https://www.codeproject.com/articles/1001088/dithering-an-image-using-the-floyd-steinberg-algor
https://www.cyotek.com/blog/an-introduction-to-dithering-images
http://www.ctonote.com/java/10132/
http://www.360doc.com/content/14/0414/10/110467_368728980.shtml
(1)吴小天 1 , 孙 伟—— 基于误差扩散的图像分存方案 1.中山大学 信 息科学与技术学院, 广州 510006; 2.中山大学 软件学院, 广州 510006
(2)于晓庆——浅谈几种常用的数字半色调算法
(3)孟小杰, 曾 平—— 一种彩色图像矢量误差分散半调方法( 西安电子科技大学外部设备研究所,陕西西安710071)

原创粉丝点击