生成合成图片的方法及装置
技术领域
本申请涉及图像处理技术领域,尤其涉及一种生成合成图片的方法及装置。
背景技术
基于互联网的推广活动经常采用在网页、社交平台上展示或扩散图片的形式。由于始终采用同一张图片容易造成用户的心理疲劳,需要经常变化展示的图片来达到更好的效果。
展示的图片通常是合成图片,通过将前景图像绘制在背景图像上生成。为了使合成图片展现较为美观的效果,现有技术中,需要由美工人员使用专业的图像处理软件来进行图片的合成。当前景图像或背景图像发生变化,或者前景图像在背景图像上的合成位置发生变化时,就需要美工人员重新手动处理合成图片,才能达到一定的美观程度。这样的过程耗时耗力,效率低下,难以满足经常变化展示图片的需求。
发明内容
有鉴于此,本申请提供一种生成合成图片的方法,包括:
统计背景图像被覆盖区域的灰度特征值;所述被覆盖区域为背景图像在合成图片中被前景图像遮挡的部分;
根据所述灰度特征值对前景图像有效区域的灰度值进行调整;所述有效区域为前景图像在合成图片中遮挡背景图像的部分;
将背景图像的被覆盖区域与调整后前景图像的有效区域相融合,得到合成图片。
本申请还提供了一种生成合成图片的装置,包括:
灰度特征值单元,用于统计背景图像被覆盖区域的灰度特征值;所述被覆盖区域为背景图像在合成图片中被前景图像遮挡的部分;
调整单元,用于根据所述灰度特征值对前景图像有效区域的灰度值进行调整;所述有效区域为前景图像在合成图片中遮挡背景图像的部分;
融合单元,用于将背景图像的被覆盖区域与调整后前景图像的有效区域相融合,得到合成图片。
由以上技术方案可见,本申请的实施例中,采用由背景图像的被覆盖区域确定的灰度特征值,来对前景图像有效区域的像素点进行灰度调整,使得自动生成的合成图片具有一定的美观程度,不需手动进行美工处理即可达到的良好展示效果,提高了生成合成图片的效率。
附图说明
图1是本申请实施例中生成合成图片的方法的流程图;
图2是一个例子中的前景图像;
图3是一个例子中的背景图像;
图4是一个例子中BP神经网络模型的训练示意图;
图5是一个例子中生成的合成图片;
图6是应用本申请实施例的计算设备的一种硬件结构图;
图7是本申请实施例中的一种生成合成图像的装置的逻辑结构图。
具体实施方式
本申请实施例提出一种新的生成合成图片的方法,将灰度校正应用于图片合成中,使得自动生成的合成图片能够达到良好的美观程度,以解决现有技术存在的问题。本申请实施例的流程如图1所示。
步骤110,统计背景图像被覆盖区域的灰度特征值。
本申请的实施例中,合成图片是通过将至少部分前景图像覆盖在背景图像的设定位置来生成的。前景图像和背景图像可以是图,也可以是以图的形式展现的文字。在合成图片中前景图像遮挡住背景图像的部分(包括以一定透明程度遮挡的情况),称为前景图像的有效部分;在合成图片中背景图像被前景图像遮挡的部分(包括以一定透明程度遮挡的情况),称为背景图像的被覆盖部分。
例如,图2所示的前景图像为支付宝的logo(徽标)和网址,图3所示为背景图像。在将图2的前景图像与图3的背景图像合成为logo图片时,图2中只有支付宝的logo和网址会显示在合成图片中,用来遮挡设定位置的背景图像,而其余白色的部分不会出现在合成图片中,则图2中前景图像的有效区域包括形成支付宝的logo和网址的所有黑色像素点。对应的,图3中在生成合成图片时将被前景图像遮挡的部分背景图像则是被覆盖区域,背景图像被覆盖区域的像素点与前景图像有效区域的像素点一一对应,被覆盖区域还与前景图像在背景图像上的设定位置有关。
可以将背景图像被覆盖区域的灰度均值、方差、谪、能量等参数用来作为灰度特征值。
例如,在将背景图像被覆盖区域中所有像素点的平均灰度值作为灰度特征值时,可以先采集背景图像被覆盖区域每个像素点的灰度值,再计算所有像素点的平均灰度值;也可以采集被覆盖区域每个像素点的像素值,将其转换为灰度值后,再计算所有像素点的平均灰度值。本实施例中不做限定。
步骤120,根据背景图像被覆盖区域的灰度特征值对前景图像有效区域的灰度值进行调整。
可以基于现有技术中根据灰度特征值对图像进行灰度调整的手段,来采用背景图像被覆盖区域的灰度特征值,对前景图像的有效区域进行灰度校正。
一个例子中,可以采用伽马校正来进行灰度调整,其灰度特征值为背景图像被覆盖区域所有像素点的平均灰度值。伽马校正是一种灰度变换,是为了克服人类视觉系统对于亮度感觉的非线性关系而引入的一种传输函数。在显示器、打印机、扫描仪等输入输出设备中,输出信号的强度与展现图像的灰度之间为非线性的指数曲线关系,可以通过伽马校正来进行补偿。此外,伽马校正还可以改善由于光照或者拍摄角度能等原因引起的图片照度不均匀的问题。伽马校正将旧的灰度值通过一个以灰度值为底、增强系数gamma次幂的映射得到新的灰度值,选择不同的增强系数gamma,可以将图片的对比度进行不同的修正。
具体而言,调整灰度值的过程进一步包括:
根据背景图像被覆盖区域所有像素点的平均灰度值计算增强系数gamma;
采用增强系数gamma对前景图像有效区域中所有像素点进行伽马校正。
现有技术中,对图片应用伽马校正提高展现效果时,有多种方式来根据整个图片的平均灰度值计算得出增强系数gamma。这个例子中,可以参照现有技术中的这些方式来计算增强系数gamma,不同之处在于本例中采用的不是整个图片的平均灰度值,而是背景图像被覆盖区域的平均灰度值。例如,可以将平均灰度值除以255作为增强系数gamma。
在一种实现中,可以按照背景图像被覆盖区域的直方图确定增强阈值;根据平均灰度值和增强阈值来计算增强系数gamma。具体而言,可以将平均灰度值除以增强阈值的结果作为增强系数gamma,如式1所示:
式1中,V为平均灰度值,T为增强阈值。
按照直方图确定增强阈值的方式可以参照现有技术,例如,可以提取灰度直方图的特征参数,将不同的特征参数对应于不同的增强阈值。
为了使前景图像与背景图像的融合达到更好的展示效果,可以借助BP(BackPropagation,误差反向传播)神经网络来确定增强阈值。BP神经网络是应用最为广泛的神经网络模型之一,能够学习和存储大量的输入输出模式映射关系,而无需事先揭示描述这种映射关系的数学方程。BP神经网络模型拓扑结构包括输入层、中间层和输出层,输入层接收来自外界的输入信息,传递给中间层;中间层可以是单隐层或多隐层结构,负责信息变换和处理,并将处理完成的信息传递到输出层,由输出层向外界输出信息处理结果;如果实际输出与期望输出不符时,进入误差的反向传播阶段,误差通过输出层,按误差梯度下降的方式修正各层权值,向中间层、输入层逐层反传,直到输出误差减少到满足要求的程度或达到预先设定的训练次数为止。
具体而言,在本例中,准备若干背景图像,以及能够适用于每个背景图像的增强阈值(即采用本实施例中的方法在该背景图像上融合前景图像后,能够满足视觉效果要求的增强阈值),以这些背景图像的颜色直方图和对应的增强阈值为样本,训练以颜色直方图为输入、以增强阈值为输出的BP神经网络模型;训练完成后,将背景图像被覆盖区域的颜色直方图输入该BP神经网络模型,即可得到增强阈值。
为了使得该BP神经网络模型普遍适用于各种基调的背景图像,可以按照基调来对背景图像分类,选择样本时使得每一类基调下都有一定数量的背景图像。采用这样的样本,可以使训练得出的BP神经网络模型具有通用性。
采用BP神经网络模型得出的增强阈值可以使合成图片的特征(如特定区域颜色直方图、纹理特征、角点描述子等)具有一定的随机性,可以减少通过特征识别合成图片的可能性,从而降低合成图片被屏蔽的概率。
在确定伽马校正所采用的增强系数gamma后,采用增强系数gamma对前景图像有效区域中所有像素点进行伽马校正。遍历前景图像有效区域的所有像素点,对每个像素点的像素值或灰度值以该增强系数gamma进行伽马校正,得到新的像素值或灰度值。
例如,可以采用式2来对每个像素点进行伽马校正:
式2中,X(i,j)为伽马校正前前景图像有效区域某个像素点的像素值,X为伽马校正后该像素点的像素值。
步骤130,将背景图像的被覆盖区域与调整后前景图像的有效区域相融合,得到合成图片。
将背景图像的被覆盖区域与灰度调整后前景图像的有效区域相融合,可以是将背景图像的被覆盖区域替换为前景图像的有效区域,也可以是以设定的透明程度将背景图像的被覆盖区域替换为前景图像的有效区域相叠加,本实施例中不做限定。
可见,本申请的实施例中,采用由背景图像的被覆盖区域确定的灰度特征值,来对前景图像有效区域的像素点进行灰度调整,使得融合后的合成图片具有较好的美观程度,不再需要手动进行美工处理,提高了合成图片的生成效率,满足了在短时间内生成多张合成图片的应用需求。
需要说明的是,本实施例中的方法可以应用在任何计算设备上,如服务器、虚拟机、个人电脑、平板电脑、手机等设备。在客户端/服务器(C/S)模式的应用中,本实施例中的方法可以部分应用在服务器上,部分应用在客户端上,由服务器和客户端协同完成合成图片的生成。
在本申请的一个应用示例中,前景图像如图2所示,其有效区域为形成支付宝的logo和网址的所有黑色像素点;当需要生成新的合成图片时,从背景图集中随机选择一张背景图像,按照预定的板式进行图片合成。
本应用示例中采用BP神经网络模型来获得增强阈值T,将背景图像按照其色调分为若干个基调类,在每个基调类下保存若干个背景图像,并通过人工设定获取每个背景图像对应的能够满足视觉要求的增强阈值T,以所有基调类下的背景图像的颜色直方图和对应的增强阈值T作为样本,来进行BP神经网络模型的训练。请参见图4所示的训练示意图,该BP神经网络采用单隐层结构,训练样本输入为每一基调类下每个背景图像的颜色直方图,维数为256,输出节点数为1,即增强阈值T。
需要生成合成图片时,在确定背景图像后,根据预定的版式,得出前景图像在背景图像上的具体位置;再按照前景图像的有效区域,确定背景图像的被覆盖区域。被覆盖区域的像素点与前景图像中形成支付宝logo和网址的所有黑色像素点的个数相同,获取被覆盖区域每个像素点的灰度值,将其加总后进行平均,得到平均灰度值V。
生成背景图像被覆盖区域的颜色直方图,将其输入训练完成的BP神经网络模型,得到增强阈值T。利用式1计算出增强系数gamma。
遍历前景图像有效区域的所有像素点,获取每个像素点的像素值,利用式2计算出伽马校正后该像素点的像素值。
将背景图像被覆盖区域的每个像素点的像素值替换为伽马校正后前景图像有效区域对应像素点的像素值,得到合成图片。
一个例子中,当选择的背景图像如图3所示时,生成的合成图片如图5所示。
与上述流程实现对应,本申请的实施例还提供了一种生成合成图像的装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在计算设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图6所示的CPU、内存以及非易失性存储器之外,生成合成图像的装置所在的设备通常还包括用于实现网络通信功能的板卡等其他硬件。
图7所示为本实施例提供的一种生成合成图片的装置,从功能上划分,包括灰度特征值单元、调整单元和融合单元,其中:灰度特征值单元用于统计背景图像被覆盖区域的灰度特征值;所述被覆盖区域为背景图像在合成图片中被前景图像遮挡的部分;调整单元,用于根据所述灰度特征值对前景图像有效区域的灰度值进行调整;所述有效区域为前景图像在合成图片中遮挡背景图像的部分;融合单元用于将背景图像的被覆盖区域与调整后前景图像的有效区域相融合,得到合成图片。
可选的,所述灰度特征值为背景图像被覆盖区域中所有像素点的平均灰度值;所述调整单元包括增强系数模块和校正模块,其中:增强系数模块用于根据平均灰度值计算增强系数gamma;校正模块用于采用增强系数gamma对前景图像有效区域中所有像素点进行伽马校正。
可选的,所述增强系数模块进一步包括增强阈值子模块和增强系数计算子模块,其中:增强阈值子模块用于按照背景图像被覆盖区域的直方图确定增强阈值;增强系数计算子模块用于根据平均灰度值和增强阈值计算增强系数gamma。
可选的,所述装置还可以包括神经网络模型单元,用于采用若干背景图像以及对应于背景图像的增强阈值,训练误差反向传播BP神经网络模型;所述BP神经网络模型以颜色直方图为输入、以增强阈值为输出;所述增强阈值子模块具体用于:将背景图像被覆盖区域的颜色直方图输入所述BP神经网络模型,得到增强阈值。
可选的,所述校正模块具体用于:采用式2确定前景图像有效区域中每个像素点的像素值;式2中,X(i,j)为伽马校正前前景图像有效区域某个像素点的像素值,X为伽马校正后该像素点的像素值。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。