一种利用阿尔法通道的图像合成方法及系统
技术领域
本发明涉及图像处理技术,尤其涉及一种利用阿尔法通道的图像合成方法。
背景技术
图像合成技术,属于图像处理的范畴,主要是指两个或两个以上的视频或图片通过加工处理,叠加或组合在一起,创作出新的图像效果。常见的图像合成方法有:
1.阿尔法(Alpha)混合,利用前景和背景图的阿尔法信息,按照一定的比例融合,每个像素进行处理后得到合成的图像;
2.遮罩合成法,遮罩是以独立的层的形式参与合成,控制前景、背景的合成比例,而不是附属于前景图像的一个阿尔法通道信息;
3.三维空间合成,在二维的基础上加入深度Z轴的概念形成的,三维空间合成将近似于三维动画的建模方式引入合成空间。
其中,在多媒体应用中较为广泛的是阿尔法混合。在现有的阿尔法混合方式中,一般是通过设置阿尔法信息来计算每个像素的颜色,例如,通过下面的方式来计算每个像素的颜色:
R=(Rb*(255-Alpha)+Rf*Alpha)/255;//Alpha取值范围从0到255
G=(Gb*(255-Alpha)+Gf*Alpha)/255;//Alpha取值范围从0到255
B=(Bb*(255-Alpha)+Bf*Alpha)/255;//Alpha取值范围从0到255
A=Alpha;//Alpha取值范围从0到255
而该设置的阿尔法值Alpha通常是取前景图或背景图或某一固定的阿尔法值,而合成后的图片也是根据前景图或背景图或某一固定的阿尔法值来计算每个像素。所以这种图像合成方法,只是取到其中的一个阿尔法通道(前景图或背景图或某一固定值作为阿尔法通道)来计算,无法同时利用前景图和背景图的两个阿尔法通道信息。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述无法同时利用前景图和背景图的两个阿尔法通道信息来进行图像合成的缺陷,提供一种利用阿尔法通道的图像合成方法,能同时利用前景图和背景图的两个阿尔法通道信息来进行图像合成。
本发明解决其技术问题所采用的技术方案是:构建一种利用阿尔法通道的图像合成方法,包括:
根据前景图像的阿尔法通道以及背景图像的阿尔法通道,通过预设的矩阵A依次计算合成后图像的每个像素点的阿尔法值;根据前景图像的阿尔法通道、背景图像的阿尔法通道、前景图像的颜色通道和背景图像的颜色通道,通过预设的矩阵S依次计算合成后图像的每个像素点的颜色值;
根据计算合成后图像的每个像素点的阿尔法值和颜色值,得到合成后的图像。
在本发明所述的图像合成方法中,所述通过预设的矩阵A依次计算合成后图像的每个像素点的阿尔法值的步骤之前还包括:
构建对称矩阵A,且对称矩阵A的模型为:
A(i,j)=int(i+j-i*j/255),0<=i<256,0<=j<256
其中,A(i,j)表示矩阵A的元素,int()表示取整;
通过预设的矩阵S依次计算合成后图像的每个像素点的颜色值的步骤之前还包括:
构建矩阵S,且矩阵S的模型为:
S(i,j)=i/A(i,j),0<=i<256,0<=j<256且,
若A(i,j)=0,则S(i,j)=0
其中,S(i,j)表示矩阵S的元素。
在本发明所述的图像合成方法中,所述步骤S3包括:
S31.以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵A中查找对应的元素,并将在矩阵A中所查找到的元素作为合成后图像当前像素点的阿尔法值;
S32.以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵S中查找对应的元素,并根据下面的公式计算合成后图像当前像素点的颜色值:
R=Rb+s*(Rf-Rb)/256
G=Gb+s*(Gf-Gb)/256
B=Bb+s*(Bf-Bb)/256
其中,R为合成后图像当前像素点的R值,G为合成后图像当前像素点的G值,B为合成后图像当前像素点的B值,s为在矩阵S中所查找到的元素,Rf为前景图像当前像素点的R值,Gf为前景图像当前像素点的G值,Bf为前景图像当前像素点的B值,Rb为背景图像当前像素点的R值,Gb为背景图像当前像素点的G值,Bb为背景图像当前像素点的B值。
本发明还构造一种利用阿尔法通道的图像合成系统,包括:
计算模块,用于根据前景图像的阿尔法通道以及背景图像的阿尔法通道,通过预设的矩阵A依次计算合成后图像的每个像素点的阿尔法值;根据前景图像的阿尔法通道、背景图像的阿尔法通道、前景图像的颜色通道和背景图像的颜色通道,通过预设的矩阵S依次计算合成后图像的每个像素点的颜色值;
图像合成模块,用于根据计算合成后图像的每个像素点的阿尔法值和颜色值,得到合成后的图像。
在本发明所述的图像合成系统中,所述图像合成系统还包括:
矩阵A构建模块,用于构建对称矩阵A,且对称矩阵A的模型为:
A(i,j)=int(i+j-i*j/255),0<=i<256,0<=j<256
其中,A(i,j)表示矩阵A的元素,int()表示取整;
矩阵S构建模块,用于构建对称矩阵S,且矩阵S的模型为:
S(i,j)=i/A(i,j),0<=i<256,0<=j<256且,
若A(i,j)=0,则S(i,j)=0
其中,S(i,j)表示矩阵S的元素。
在本发明所述的图像合成系统中,所述计算模块包括:
阿尔法值确定单元,用于以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵A中查找对应的元素,并将在矩阵A中所查找到的元素作为合成后图像当前像素点的阿尔法值;
颜色值确定单元,用于以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵S中查找对应的元素,并根据下面的公式计算合成后图像当前像素点的颜色值:
R=Rb+s*(Rf-Rb)/256
G=Gb+s*(Gf-Gb)/256
B=Bb+s*(Bf-Bb)/256
其中,R为合成后图像当前像素点的R值,G为合成后图像当前像素点的G值,B为合成后图像当前像素点的B值,s为在矩阵S中所查找到的元素,Rf为前景图像当前像素点的R值,Gf为前景图像当前像素点的G值,Bf为前景图像当前像素点的B值,Rb为背景图像当前像素点的R值,Gb为背景图像当前像素点的G值,Bb为背景图像当前像素点的B值。
实施本发明的技术方案,在进行图像合成时,由于同时使用到前景图像的阿尔法通道和背景图像的阿尔法通道来计算合成后图像的阿尔法通道和颜色通道,因此合成后的图像信息包含合成前两个图像的阿尔法通道的信息。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明利用阿尔法通道的图像合成方法实施例一的流程图;
图2是本发明利用阿尔法通道的图像合成方法实施例二的流程图;
图3是图1中步骤S3优选实施例的流程图;
图4是本发明利用阿尔法通道的图像合成系统实施例一的逻辑结构图;
图5是本发明利用阿尔法通道的图像合成系统实施例二的逻辑结构图;
图6是本发明利用阿尔法通道的图像合成系统实施例三的逻辑结构图。
具体实施方式
首先说明的是,一个图像包括四个通道,其中三个是颜色通道,分别为R(红)通道、G(绿)通道、B(蓝)通道。另一个通道是阿尔法通道,用以记录图像的透明度信息。另外,在进行图像处理时,都是逐个像素点进行的,而针对每个像素点,其具有四个值,分别对应于四个通道,该四个值具体为:R值、G值、B值及阿尔法值。
如图1所示,在本发明利用阿尔法通道的图像合成方法实施例一的流程图中,该方法包括步骤S3-S4,下面具体说明。
在步骤S3中,根据前景图像的阿尔法通道以及背景图像的阿尔法通道,通过预设的矩阵A依次计算合成后图像的每个像素点的阿尔法值;根据前景图像的阿尔法通道、背景图像的阿尔法通道、前景图像的颜色通道和背景图像的颜色通道,通过预设的矩阵S依次计算合成后图像的每个像素点的颜色值。
在步骤S4中,根据计算合成后图像的每个像素点的阿尔法值和颜色值,得到合成后的图像。
实施图1所示的技术方案,在进行图像合成时,由于同时使用到前景图像的阿尔法通道和背景图像的阿尔法通道来计算合成后图像的阿尔法通道和颜色通道,因此合成后的图像信息包含合成前两个图像的阿尔法通道的信息。
图2是本发明利用阿尔法通道的图像合成方法实施例二的流程图,该图像合成方法包括步骤S1-S4,其中步骤S3-S4与图1所示的实施例一中的步骤S3-S4相同,在此不再赘述,以下仅说明步骤S1-S2。
在步骤S3之前的步骤S1中,构建对称矩阵A,且对称矩阵A的模型为:
A(i,j)=int(i+j-i*j/255),0<=i<256,0<=j<256
其中,A(i,j)表示矩阵A的元素,int()表示取整。
在该步骤中,按照上述公式构建出的矩阵A为:
该矩阵A为256*256的二维对称矩阵,即A=AT,(AT为A的转置矩阵),且该矩阵A包括以下特点:1)对称性;2)对同一列值,行值越大,元素值越大(最后一列除外);3)对应同一行值,列值越大,元素值越大(最后一行除外)。
在步骤S2中,构建矩阵S,且矩阵S的模型为:
S(i,j)=i/A(i,j),0<=i<256,0<=j<256且,
若A(i,j)=0,则S(i,j)=0
其中,S(i,j)表示矩阵A的元素;
在该步骤中,按照上述公式构建出的矩阵S为:
该矩阵S包括以下特点:1)对于同一行值,列值越大,元素值越小(除第一行和最后一行外);2)对于同一列值,行值越大,元素值越大。
图3是图1中步骤S3优选实施例的流程图,该步骤S3包括:
步骤S31.以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵A中查找对应的元素,并将在矩阵A中所查找到的元素作为合成后图像当前像素点的阿尔法值;
步骤S32.以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵S中查找对应的元素,并根据下面的公式计算合成后图像当前像素点的颜色值:
R=Rb+s*(Rf-Rb)/256
G=Gb+s*(Gf-Gb)/256
B=Bb+s*(Bf-Bb)/256
其中,R为合成后图像当前像素点的R值,G为合成后图像当前像素点的G值,B为合成后图像当前像素点的B值,s为在矩阵S中所查找到的元素,Rf为前景图像当前像素点的R值,Gf为前景图像当前像素点的G值,Bf为前景图像当前像素点的B值,Rb为背景图像当前像素点的R值,Gb为背景图像当前像素点的G值,Bb为背景图像当前像素点的B值。
在图3所示的实施例中,还应当说明的是,在确定好行值和列值后进行查找时,因为矩阵A和矩阵S在存储时是按行存储的,例如,先存第一行的元素,接着第二行、第三行等等,直到最后一行,所以,在查找时,应将行值乘以256再加上列值来确定存储位置的偏移量。
图4是本发明利用阿尔法通道的图像合成系统实施例一的逻辑结构图,该图像合成系统包括计算模块30及图像合成模块40。其中,计算模块30用于根据前景图像的阿尔法通道以及背景图像的阿尔法通道,通过预设的矩阵A依次计算合成后图像的每个像素点的阿尔法值;根据前景图像的阿尔法通道、背景图像的阿尔法通道、前景图像的颜色通道和背景图像的颜色通道,通过预设的矩阵S依次计算合成后图像的每个像素点的颜色值;图像合成模块40用于根据计算合成后图像的每个像素点的阿尔法值和颜色值,得到合成后的图像。
图5是本发明利用阿尔法通道的图像合成系统实施例二的逻辑结构图,该图像合成系统包括矩阵A构建模块10、矩阵S构建模块20、计算模块30及图像合成模块40,其中,计算模块30及图像合成模块40与图4所示的实施例一中的计算模块30及图像合成模块40相同,在此不再赘述,以下仅说明矩阵A构建模块10和矩阵S构建模块20。在该图像合成系统中,矩阵A构建模块10用于构建对称矩阵A,且对称矩阵A的模型为:
A(i,j)=int(i+j-i*j/255),0<=i<256,0<=j<256其中,A(i,j)表示矩阵A的元素,int()表示取整。矩阵S构建模块20用于构建对称矩阵S,且矩阵S的模型为:
S(i,j)=i/A(i,j),0<=i<256,0<=j<256且,
若A(i,j)=0,则S(i,j)=0
其中,S(i,j)表示矩阵A的元素。图像合成模块30用于根据矩阵A、矩阵S、前景图像的阿尔法通道、背景图像的阿尔法通道、前景图像的颜色通道和背景图像的颜色通道,依次对合成后图像的每个像素点计算阿尔法值和颜色值,以得到合成后图像。
图6是本发明利用阿尔法通道的图像合成系统实施例三的逻辑结构图,该实施例相比图4所示的实施例一,其中的矩阵A构建模块10和矩阵S构建模块20、图像合成模块40是相同的,在此不再赘述,所不同的是,计算模块30具体包括:阿尔法值确定单元31和颜色值确定单元32。其中,阿尔法值确定单元31用于以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵A中查找对应的元素,并将在矩阵A中所查找到的元素作为合成后图像当前像素点的阿尔法值。颜色值确定单元32用于以前景图像的当前像素点的阿尔法值为行值,以背景图像的当前像素点的阿尔法值为列值,在矩阵S中查找对应的元素,并根据下面的公式计算合成后图像当前像素点的颜色值:
R=Rb+s*(Rf-Rb)/256
G=Gb+s*(Gf-Gb)/256
B=Bb+s*(Bf-Bb)/256
其中,R为合成后图像当前像素点的R值,G为合成后图像当前像素点的G值,B为合成后图像当前像素点的B值,s为在矩阵S中所查找到的元素,Rf为前景图像当前像素点的R值,Gf为前景图像当前像素点的G值,Bf为前景图像当前像素点的B值,Rb为背景图像当前像素点的R值,Gb为背景图像当前像素点的G值,Bb为背景图像当前像素点的B值。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。