Photoshop中对比度变换算法分析
2009-08-14
作者:桑 军1, 李宗志2, 朱
摘 要: 采用试验设计方法,研究了Photoshop中对比度变换算法的实现,并对算法进行了分析。
关键词: 对比度变换 试验设计方法 Photoshop图像处理软件
Photoshop是Adobe公司开发的图形图像软件,自推出以来已在编辑和创建各种不同的图像领域得到广泛应用。
采用Photoshop进行图像编辑的使用者目的是得到满意的图像视觉效果,因此只需要知道算法的处理结果,而不需要知道算法的具体实现。而图像处理算法的研究者既需要知道算法的处理结果,也需要知道算法的具体实现。但是,Photoshop并没有公布其图像处理算法的实现细节,这给算法研究者开发具有相同功能的算法带来了困难。本文将采用试验设计方法,分析Photoshop中图像处理算法的实现技术,以亮度/对比度(Brightness/Contrast)命令为例具体研究了Photoshop所实现的对比度变换算法。
1 Photoshop的图像对比度
图像对比度是指图像中最暗调和最亮调之间差异的范围。对比度高使图像看上去像影印件,很少或几乎没有灰度层次;对比度低使图像看上去平滑而暗淡。实际应用中应选择合适的对比度。Photoshop中可利用Levels、Curves或Brightness/Contrast命令实现对比度变换。其中前二者需要调整多个参数,而Brightness/Contrast命令则仅需通过改变1个值就可达到对比度变换的目的。
2 试验设计方法
自1920年以来,试验设计方法学是如何正确地安排试验和分析试验数据的一门科学。发展至今,已成功地应用于诸如工业质量控制之类的许多实际应用中。近年来,在信号和图像处理领域,试验设计方法学也得到越来越多的应用。如Sadjadi将其用于系统性能的评估,将所研究的系统看作一个黑箱,在一定的系统模型下,通过巧妙地设计系统的各种输入激励,以获得相应的系统输出,从而得到关于系统响应的解析模型。在系统非常复杂(如非线性系统)的情况下,如此得到的系统模型可能仅与真实的系统具有响应上的近似性,而并非真正的系统模型。本文所研究的图像对比度变换算法可视为一种非常简单的线性系统,且采用试验设计方法可真实地实现。
3 Photoshop对比度变换算法分析
使用的原始灰度图像如图1所示,按以下步骤进行实验。
(1)利用Photoshop的直方图(Histogram)功能得如图2所示结果。
(2)利用Photoshop的亮度/对比度功能,增加图像对比度10%后的直方图如图3所示。
(3)比较图2和图3,可见图像对比度变换前后,图像的灰度均值没变(分别为121.34和121.36,小数点后的微小变化是由离散化而引起的);但图像直方图以其灰度均值为中心,向0和255这2个灰度端点值变化,从灰度标准差的变化(18.84~20.91)也可得出此结论,于是可以猜测对比度变换算法形式为:
其中i和i′分别为变换前后的灰度值,c为对比度变换参数,mean为变换前灰度均值,f1(c)和f2(c)为关于c的函数。
(4)利用Photoshop的亮度/对比度功能,增加图像对比度100%,得到1个二值图像,即仅存在0和255这2个灰度值。结合式(1) 可知,当c=1时(即增加图像对比度100%):
由于图像灰度值在区间[0,255]内取离散值,当c=1时,可能存在灰度亮饱和(i≥mean时)和暗饱和(i 此处考虑了亮饱和和暗饱和的影响。 经过对大量不同c(c>0)的实验,证实了上述算法的正确性。 (5)分析减小对比度时的变换算法。利用Photoshop的亮度/对比度功能,减小图像对比度10%后的直方图如图4所示。 (6)比较图2和图4,发现图像对比度变换前后,图像的灰度均值仍未变(分别为121.34和121.33,小数点后的微小变化也是由离散化而引起);但图像直方图以其灰度均值为中心,从0和255 2个方向向其集中。同样,从灰度标准差的变化(18.84~17.00)也可得出此结论。类似式(1),可推测此时的对比度变换算法形式为:
(7)利用Photoshop的亮度/对比度功能,减小图像对比度100%,得到等值图像,即仅存在与mean最接近的离散灰度值。结合式(3),当c=-1时(即减少图像对比度100%)有:
即将区间[0,255]压缩至[-mean·c,255+(255-mean)·c]。
经过对大量不同c(c<0)的实验,也证实了上述算法的正确性。综合式(2)及式(4),得到Photoshop所采用的对比度变换算法如下:
需要指出的是,在分析c>0情况下的对比度变换算法时,为了避免变换后图像灰度出现亮饱和或暗饱和,原始图像的灰度应分布在区间[0,255]的中间。若原始图像不满足此要求,可在一定的亮度和对比度变换后再对原始图像进行分析。
4 结 论 本文采用试验设计方法,研究了Photoshop中对比度变换算法的实现。事实上,对于Photoshop中的其他图像处理算法均可将其看作一个黑箱,采用试验设计方法,通过设计恰当的实验图像,反向推导出其实现细节。 参考文献 1 魏胜锋.Photoshop 6.0技巧与实例.北京:人民邮电出版社,2001 2 向世明.Visual C++数字图像与图形处理.北京:电子工业出版社,2002 3 Sadjadi F.Experimental Design Methodology:the Scientific Tool for Performance Evaluation.In:Proc of SPIE,Orlando,1990