王建军,唐前军
摘 要: 文章对Alpha通道的图像存储结构进行了底层剖析,从根本上阐述了Alpha通道对图像的作用机理,以求解决在图像处理以及图像识别过程遇到的理解困难。重点分析了在图像高级处理中的应用效果,给出了典型的图像处理范例进行操作剖析,从实验结果上对Alpha通道的特殊作用进行了印证。
关键词: 图层; 通道; 蒙版; 路径
中图分类号:TP37 文献标识码:A 文章编号:1006-8228(2022)01-46-04
Research on the application of Alpha channel in image processing
Wang Jianjun1, Tang Qianjun2
(1. School of Design, Leshan Normal University, Leshan, Sichuan 61400, China; 2. School of Teacher Education of Leshan Normal University)
Abstract: This paper analyzes the storage structure of image with Alpha channel, and fundamentally expounds the action mechanism of Alpha channel on image, in order to solve the understanding difficulties encountered in the process of image processing and image recognition. The application effect in advanced image processing is emphatically analyzed, and a typical image processing example is given for operational dissecting, so as to confirm the special function of Alpha channel from the experimental results.
Key words: image layer; channel; mask; path
0 引言
图像在高速发展的信息时代,起到了直观、快速、高效传递知识的作用,图像处理已经跨界发展,不仅仅在图像设计领域,同样在多媒体设计,图像识别与传输等诸多领域都有其身影[1]。Alpha通道的学习和运用方面,成为图像处理过程的一个难点。从Alpha通道的构成上来分析其作用原理,才能对其有根本性的理解,进而在应用上获得质的飞跃。
1 通道基础
在数字图像中,一般采用颜色相加的混合原理(印刷系统一般采用颜色相减的混合原理),也就是红绿蓝(以下简称RGB)三基色按照不同的比例进行混合[2],从而形成新的颜色及图像。在计算机内部,采用二进制数字来保存每个像素的颜色信息,大量的二进制数字构成的矩阵,形成一幅图像的存储信息[3]。在RGB图像的24位真彩色模式下,每个像素分别采用如图1所示的结构来保存图像颜色信息(这里讨论的是非压缩格式的保存模式)。
图1中的三基色分别用不同的二进制数据代表不同颜色的比例,红色就可以用0到255之间的数字来表达256种不同深浅的红[4],三种基本色就构成一个像素点的混合色,也就是最终呈现的效果。一副图片的分辨率就决定了需要多少这样的二进制数来存储这幅图片。图像的分辨率越高,所占的存储空间越大,这就解释了为什么高分辨率图像的存储和显示更耗费计算机资源。
我们来解释通道的概念,从图1看,一副图像是由很多如图1那样的结构(三个字节)组织起来的,那么所有的代表红色的二进制数据(字节)构成的总体,数学上就称之为一个向量,这个向量就体现了一副图像的所有像素的红色信息,这个向量就构成红色通道了[5]。同样,绿色通道,蓝色通道亦是如此。
2 ALPHA通道
2.1 Alpha通道的由来
为了呈现更为丰富的图像色彩信息,尤其是体现头发,玻璃,烟雾,液体等半透明的效果,就在24位的基础上再增加了一个字节,也就是8位二进制数据,这增加的8位二进制数,并没有增加颜色的表达数量,也就是说32位深度的图像并没有增加颜色数量[6],而是称为Alpha的通道,结构如图2所示。
这个新增加的字节,在整个图像中有和像素数目相同的规模就构成另一个向量,称为Alpha通道,也称为@通道。
2.2 Alpha通道对其他的影响
简单来说,新增加的这个Alpha通道是用来控制图像的透明程度的[7]。具体来说,由图2可以看出,每个像素的RGB三个通道由不同的数字来代表不同的颜色比例,混合成这个像素点的综合色彩。那么这个增加的Alpha通道的数字就是用来表达这个像素点的透明程度的。当这个字节的数字为00000000时,就表达出其余三个字节不起作用,该像素点就透明了或看不见了,在复合通道中被忽略掉了,视觉上,该像素点位置能看见的就是对应的背景层的像素点的颜色了。多个这样的点就构成了一个透明区域。当Alpha通道为11111111(十进制255)时,说明这个像素点100%不透明,对应像素的混合色彩完全可见,无法看见该像素点背后的背景层像素。用0~255之间的任意一个数字代表这个像素点的透明程度(有些软件中用Opacity,用不透明程度來表达),视觉上不仅能看见该像素的颜色,透过该像素的颜色,对应背景层的像素也是隐约可见的,这就是半透明效果的来源。这样,整个Alpha通道向量就完整的表达了一副图像的每个像素的透明程度[8],从而使图像呈现效果更为丰富,尤其在需要呈现出若隐若现或虚幻缥缈效果中更为明显。
可以看出,Alpha通道是对其他的RGB通道都起到控制作用,进而影响到最终效果的复合通道(当然,多层图像还有层的混合形成最终效果)。那么,具体来说,Alpha通道是怎么影响其他通道的呢,计算机图形学中,把Alpha通道和其他色彩通道的作用运算方式分两种,即直通模式和预乘模式[9]。使用直通模式,也即是直接存储像素点本身的颜色值,显示时通过Alpha字节属性进行描述[10],例如(255,0,0,128)就表示这个像素点为50%半透明的纯红色(其中两个0分别代表绿色和蓝色的颜色值为0,没有颜色信息)。255代表的红色最大值。在显示的时候,由软件再计算成128的结果。但是如果采用预乘的方法,其实就是预先用透明度(0~1之间的百分比,对应0~255之间的整数)和像素的RGB通道值相乘,而非直接存放颜色自身的完整数据。那么上面的同一个像素点,存放的就是(128,0,0,128),颜色值为255预先就和透明度50%相乘了。采用预乘的模式可以适度降低后期处理的运算量,效率更高一些[11]。
2.3 Alpha在图层混合中的作用
图像处理过程,往往离不开图层的混合来合成最终的效果。那么Alpha通道在图层的混合过程中怎么起作用呢?Photoshop(简称PS)是常见专业级图像处理软件,其中图层的混合模式有很多种,以满足不同的混合需要,多个图层的混合其实是两两混合的。这里就分析两个图层混合的过程,我们把上面的图层成为前景图层A,下面的图层称为背景图层B。最基本的正常叠加模式的公式其实是result=A*alphaA+B*(1-alphaA)[12],其中Result代表混合结果的颜色值(包含RGB),A代表前景层的颜色值(包含RGB),B代表背景层的颜色值(包含RGB)。如果按分量描述就变成三个公式,即:
Rresult=RA*alphaA+RB*(1-alphaA) ⑴
Gresult=GA*alphaA+GB*(1-alphaA) ⑵
Bresult=BA*alphaA+BB*(1-alphaA) ⑶
对于该公式的简单理解,就是前景图层的Alpha值如果30%,那就是说背景图层就用70%的透明度的颜色值与前景图层30%的透明度得颜色值进行混合。也就前景图层的RGB乘以30%和背景图层乘以70相加,就得到混合结果的RGB颜色值。另外,不同的软件,不同的层混合模式,还有更为复杂计算方式。
需要值得注意的是,在图像识别的应用上,如果图像具备Alpha通道,由于Alpha通道以黑白灰显示暗部,高光和半透明区域,并不代表具体的像素颜色。这就可能导致识别上的错误[13],可以在识别程序上采用预乘的算法把透明度直接计算到RGB的个色彩通道上就能解决。
3 Alpha应用
通过前面的分析,可以看出Alpha通道的数据实际上是反映像素点的透明程度的,那么它就在图片的半透明效果呈现和图像混合中起到很大作用。而实际应用中,这个重要的功能往往是由软件自动自动完成了,不需要或者需要极少的操作就可以实现。而Alpha通道值的两个特殊值(0,255)恰好反映图片像素的两个极端,可见与否,所以在很多软件中,都用黑白效果来表达Alpha通道的作用效果。具备这样的Alpha值的像素集中连片就构成选区,若成线性结构就形成路径。因此,在PS这种专业的图像处理软件中,Alpha通道就更多的被用于记录选区和路径,以实现蒙版,抠图等功能。
3.1 选区应用
由于在大多数的图像处理过程中都遵循同一个基本原则:先选中,后操作,以确保操作对象和范围的准确性。而Alpha通道正是由于可以记录和表达各种选区,所以在保存选区和构造选区中得以发挥其长。
首先,选区的保存与恢复。在图像处理过程中对一些耗费时间多且需要小心翼翼才得以构造完成的选区,比如用套绳等工具小心翼翼形成的选区,可能在后来发现还要反复使用,而中途又必须有取消选择的需要,甚至隔断时间,重新打开图片继续进行编辑时,还要使用同一选区,如果每次都要重新选择,就耗时耗力且不可能做到每一次都完全一样。例如图3所示的一个选区。
为了能让已经勾选好的比熊的轮廓记忆反复使用,就可以在首次勾选完成后,用存储选区的方式,新建一个Alpha通道(图3命名为“比熊轮廓”)。这个新建的Alpha通道不是颜色通道,只以黑白灰的形式呈现[14],其中白色部分就是选区(当然,也可以说黑色部分是选区,相对而言)。在后续处理的过程中,随时可以重新利用这个叫做“比熊轮廓”的Alpha通道,重新载入选区,就可以显著提高工作效率。
其次,利用Alpha对选区的记录功能,更为高级的应用就是蒙版和抠图,对于复杂的对象,通过勾选、快速选择、颜色范围和蒙版等常规工具难易选择的抠图范围,往往就要考虑Alpha通道专有功能了。在图4中,如果需要把其中的烟花效果扣除,使用套绳,快速选区和颜色范围以及蒙版等手段就难以完成,难度太大,而且对于其中半透明的效果更是无法完成。
这个时候就应考虑Alpha通道了,利用Alpha通道抠图,实际上就是利用Alpha通道对于选区的记录。一般都需要经过挑选通道,产生Alpha通道,调整色阶,载入选区,复制,粘贴等基本过程[15]。其中挑选通道是在RGB三个单独的颜色通道中观察、对比,要抠取对象的颜色和周围背景之间对比情况,挑选对比最明面的通道。图4的通道中,红色通道的前景和背景对比最为强烈。第二步就需要根据挑选好的颜色通道产生Alpha通道了,PS中默认的复制通道就产生了Alpha通道。接下来对这个新产生的Alpha通道进行色阶调整。色阶调整是为了使输出的黑白更加明显,凡是不需要的尽可能调整黑色,需要部分盡可能调整白色,中间不同程度的灰色代表半透明区域。必要时可以结合选区,用填充,画笔等工具将不需要的部分强制处理为黑色,需要部分强制处理为白色(但半透明区域不能强制为白色,否则就成不透明了)。当然还可以借用其他技术手段来达到更好的选择区分。图5是已经处理的Alpha通道效果。
当Alpha通道已经明显区分了需要的部分和不需要的部分后,就可以回到复合通道,在对应图层中载入Alpha通道所记载的选区,把选择好的像素复制,并在需要的地方进行粘贴,观察并继续进行后期处理。
3.2 路径应用
不同于数学或网络中的路径,表达从起点到终点的路由情况。路径在图像处理中是使用贝赛尔曲线所构成的一段闭合或者开放的曲线段[16],路径其实也是Alpha通道应用的另一种应用形式。路径作为矢量工具在PS作为一种有益补充工具,自然和CDR中的主打工具的作用不能相提并论。PS图像处理过程中,结合各锚点的调整功能,可以形成非常柔滑,完美的贝塞尔曲线,这是通过选取功能很难实现的功能。对于不封闭的路径,通过填充以后就能得到特殊曲线效果。而对于封闭路径,更能体现Alpha通道应用的优势。一条封闭的路径,可以用来构造选区和建立蒙版,这和直接使用PS的Alpha通道是异曲同工。
4 结束语
本文从存储原理的角度分析了Alpha通道的内在形式和作用,并以平面处理软件PS为例,进行了Alpha通道的设计应用表现,这个探索过程对于深入理解和应用Alpha通道具有很大帮助。接下来,还需要基于对Alpha通道的应用进行大量练习以及对PS其他功能熟练掌握,才能达到更高的境界。对于Alpha通道的深入理解和掌握是图像处理应用的基础。
参考文献(References):
[1] 何志鹏.数字多媒体图像处理技术研究[J].电脑知识与技术,2020,7(2):212-213
[2] 王建军.色彩分离在图片调色中的应用[J].计算机时代,2018,39(4):54-56
[3] 王建军.图层蒙版在半透明图像处理中的应用[J].计算机时代,2015,33(8):36-37
[4] 李郑冬.数字图像处理技术发展探究[J].信息记录材料,2019,42(2):99-100
[5] 谭静静.数字图像色选分析系统的研究及应用[D].西安科技大学,2018(12):28-30
[6] 黄勇.Photoshop中通道使用技巧[J].电子技术与软件工程,2017,6(5):59-60
[7] 刘翠芳.计算机图像处理技术应用分析[J].数字技术与应用,2019,37(12):76-77
[8] 李万波.计算机技术在纸媒图像处理中的应用[J].电子技术与软件工程,2019,7(12):129-130
[9] 杨勤.Alpha预乘的原理及其应用[J].电视字幕(特技与动画),2006,13(6):66-67
[10] 刘彩红.网页设计中计算机图像处理技术的应用[J].电子技术与软件工程,2020,7(1):104-104
[11] 逍遥游侠.解决三维出图黑白边缘溢出问题:直通(straight)与预乘(premult)alpha剖析[EB/OL],[2019-11-05]. http://blog.sina.com.cn/s/blog_1377810120102vaz1.html/.
[12] 趙红,魏勇刚,杨刚.一种基于alpha通道的彩色图像超分辨率方法[J].河北大学学报(自然科学版),2018,57(5):321-324
[13] 段方兵.基于OpenVG的二维图像处理器设计与C Model实现[D].电子科技大学硕士论文数据库,2012(9):83
[14] 霍珊.计算机图像识别的智能化处理方法解读[J].电子技术与软件工程,2018,25(12):121-122
[15] 王盼盼,王紫琨.浅谈图像分割专利技术[J].数字通信世界,2020,16(1):62-63
[16] 李智敏,陆宇豪,俞成海.基于深度学习的灰度图像实际颜色预测.计算机应用,2019,39(12):231-235