图像染发处理方法和装置
技术领域
本发明涉及视频处理技术领域,尤其涉及一种图像染发处理方法和装置。
背景技术
随着互联网技术的发展,基于图像的各种特效处理功能也渐渐流行,比如,相关应用程序提供了更改图像中用户头发颜色以实现染发效果的功能。
相关技术中,基于用户的选中触摸操作确定头发所在区域,并针对头发所在区域进行相应颜色的简单替换,从而导致至少存在以下缺陷:一方面,依赖于用户手动操作确定的头发所在区域存在较大误差,可能将非头发所在区域选中,或者,对头发所在区域漏选,另一方面,仅仅通过颜色替换的方式进行头发颜色的变化,导致头发的纹理等细节被覆盖,由此,上述至少两方面的缺陷导致相关技术中的对图像中用户的染发方式真实感较低。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种图像染发处理方法,以解决现有技术中,图像染发处理效果不真实的技术问题。
本发明的第二个目的在于提出一种图像染发处理装置。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种图像染发处理方法,包括:对原始图像进行计算,获取反映所述原始图像中像素透明度的数据矩阵;根据所述数据矩阵和所述原始图像中每个像素的亮度分量,确定所述原始图像中每个像素的光照强度;根据指定渲染的目标颜色、染色强度以及所述数据矩阵,确定所述原始图像中每个像素的目标染色值;根据所述原始图像中每个像素的光照强度和对应的目标染色值,计算获取所述原始图像中每个像素的输出颜色;根据所述每个像素的输出颜色对所述原始图像进行颜色编辑处理输出目标图像。
本发明实施例的图像染发处理方法,在保证不对非头发区域进行误染色的前提下,可以将各种颜色和光照条件下的头发图像编辑为真实的染发效果,特别是对于较暗的黑色的头发,仍然可以编辑为较为明亮鲜艳的颜色,且保持真实的头发纹理和光泽效果,对用户的多媒体使用会形成一种有趣的效果,不用真正染发就可以看到染发后的自己,有利于提高用户和产品的粘性。
为达上述目的,本发明第二方面实施例提出了一种图像染发处理装置,包括:获取模块,用于对原始图像进行计算,获取反映所述原始图像中像素透明度的数据矩阵;第一确定模块,用于根据所述数据矩阵和所述原始图像中每个像素的亮度分量,确定所述原始图像中每个像素的光照强度;第二确定模块,用于根据指定渲染的目标颜色、染色强度以及所述数据矩阵,确定所述原始图像中每个像素的目标染色值;计算模块,用于根据所述原始图像中每个像素的光照强度和对应的目标染色值,计算获取所述原始图像中每个像素的输出颜色;处理模块,用于根据所述每个像素的输出颜色对所述原始图像进行颜色编辑处理输出目标图像。
本发明实施例的图像染发处理装置,在保证不对非头发区域进行误染色的前提下,可以将各种颜色和光照条件下的头发图像编辑为真实的染发效果,特别是对于较暗的黑色的头发,仍然可以编辑为较为明亮鲜艳的颜色,且保持真实的头发纹理和光泽效果,对用户的多媒体使用会形成一种有趣的效果,不用真正染发就可以看到染发后的自己,有利于提高用户和产品的粘性。
为达上述目的,本发明第三方面实施例提出了一种电子设备,当所述计算机程序产品中的指令处理器执行时,执行如上述实施例描述的图像染发处理方法。
为了实现上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,该程序被处理器执行时实现如上述实施例描述的图像染发处理方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明第一个实施例的图像染发处理方法的流程图;
图2是根据本发明第二个实施例的图像染发处理方法的流程图;
图3是根据本发明第三个实施例的图像染发处理方法的流程图;
图4是根据本发明第四个实施例的图像染发处理方法的流程图;
图5是根据本发明第五个实施例的图像染发处理方法的流程图;
图6是根据本发明第六个实施例的图像染发处理方法的流程图;
图7是根据本发明第七个实施例的图像染发处理方法的流程图;
图8是根据本发明第八个实施例的图像染发处理方法的流程图;
图9是根据本发明第一个实施例的图像染发处理装置的结构示意图;
图10是根据本发明第二个实施例的图像染发处理装置的结构示意图;
图11是根据本发明第三个实施例的图像染发处理装置的结构示意图;
图12是根据本发明第四个实施例的图像染发处理装置的结构示意图;
图13是根据本发明第五个实施例的图像染发处理装置的结构示意图;
图14是根据本发明第六个实施例的图像染发处理装置的结构示意图;
图15是根据本发明一个实施例的计算机设备的结构示意图;
图16是根据本发明一个实施例的计算机可读存储介质的示意图;以及
图17是根据本发明一个实施例的电子设备的硬件结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的图像染发处理方法和装置。
需要说明的是,本发明实施的图像染发处理方法可以应用于直播视频等中的视频帧图像的处理,也可以应用于照片等图像的处理。
图1是根据本发明第一个实施例的图像染发处理方法的流程图,如图1所示,该图像染发处理方法包括:
步骤101,对原始图像进行计算,获取反映原始图像中像素透明度的数据矩阵。
其中,像素透明度可以理解为像素的填充颜色,当像素没有填充颜色时即为完全透明的像素,当像素充满填充颜色时,即为完全不透明的像素,通常情况下,头发所在区域的像素填充颜色较为丰富,较为不透明。
在本发明的实施例中,考虑到头发区域和其他非头发区域对应的像素在透明度上具有明显的不同,比如完全透明的像素通常对应于非头发区域,完全不透明的像素通常对应头发区域,处理完全透明与完全不透明之间的像素通常对应于非头发区域与头发区域混合的区域。从而,对原始图像进行计算,获取反映原始图像中像素透明度的数据矩阵,以便于进一步根据该数据矩阵分析头发区域。其中,数据矩阵以矩阵的形式反映了原始图像中各个位置像素的透明度。
需要说明的是,根据应用场景的不同,对原始图像进行计算,获取反映原始图像中像素透明度的数据矩阵的方式不同:
作为一种可能的实现方式,预先根据大量实验数据标注像素色阶和透明度的关系,从而,获取原始图像中每个像素的色阶,查询该对应关系,获取到对应的透明度,根据对应位置的像素和透明度生成透明度的数据矩阵。
作为另一种可能的实现方式,将原始图像输入预先根据大量实验设置的卷积神经网络模型,该模型的输入为实验原始图像,输出为像素透明度的数据矩阵,则将该卷积神经网络模型的输出作为当前原始图像的像素透明度的数据矩阵。
在本示例中,由于预先建立的卷积神经网络模型时,输入的实验原始图像的尺寸可能和当前原始图像的尺寸并不匹配,因而,为了更好的利用预先建立的卷积神经网络模型,保证输出结果的精确性,还将当前原始图像进行与实验原始图像一致的尺寸调节。
具体而言,如图2所示,上述步骤101包括:
步骤201,判断原始图像尺寸与预设的卷积神经网络的输入数据尺寸是否相同。
在本发明的一个实施例中,可以实时读取当前原始图像的尺寸与提取预设的卷积神经网络的输入数据尺寸,比较二者的输入尺寸是否相同。
步骤202,若获知尺寸不相同,则将原始图像尺寸缩放到与卷积神经网络的输入数据尺寸一致的图像,输入到卷积神经网络。
步骤203,采用卷积神经网络对输入的图像进行计算,获取与输入的图像对应的数据矩阵。
具体地,如果尺寸不相同,则为了保证输出结果的准确性,将原始图像尺寸处理到与卷积神经网络的输入数据尺寸一致的图像,比如,若原始图像尺寸处理大于卷积神经网络的输入数据尺寸,则采用裁剪或者像素压缩等方式,将原始图像尺寸缩小为卷积神经网络的输入数据尺寸,又比如,若原始图像尺寸处理小于卷积神经网络的输入数据尺寸,则采用填充空白像素等方式,将原始图像尺寸放大为卷积神经网络的输入数据尺寸,进而,将与卷积神经网络的输入数据尺寸一致的原始图像输入到卷积神经网络,以采用卷积神经网络对输入的图像进行计算,获取与输入的图像对应的数据矩阵。
当然,在实际应用中,除了本示例示出的卷积神经网络模型外,还可以采用其他可以运算出对应数据矩阵的预设算法模型进行计算,但是基于同样的原理,需要对原始图像的尺寸进行缩放调整,获取与预设算法模型尺寸匹配的输入图像输入到预设算法模型进行计算,获取与输入图相对应的数据矩阵。
步骤102,根据数据矩阵和原始图像中每个像素的亮度分量,确定原始图像中每个像素的光照强度。
较容易理解的是,现实生活中,用户的头发的颜色会随着环境光线的亮度的变化而变化以形成明暗效果,本发明的实施例中,基于数据矩阵和原始图像中每个像素的亮度分量,确定出原始图像中每个像素的光照强度,以便于进一步根据光照强度进行染色的处理,使得染色后头发细节更丰富,真实感更强。
需要说明的是,根据应用场景的不同,步骤102的实现方式不同,示例说明如下:
作为一种可能的实现方式,如图3所示,步骤102包括:
步骤301,对原始图像中每个像素进行颜色空间的数据转换,获取原始图像中每个像素的亮度分量。
在实际执行过程中,由于受到环境光线、拍摄角度等因素的影响,图像中用户的头发呈现了明暗效果,为了保证最后对图像中用户的头发进行染色处理的真实感,需要保留这种明暗效果,以体现出用户头发纹理的细节。
具体地,对原始图像中每个像素进行颜色空间的数据转换,获取原始图像中每个像素的亮度分量,基于这种亮度分量进行上述头发敏感效果以及头发纹理的体现。
其中,在不同的应用场景下,对原始图像中每个像素进行颜色空间的数据转换的方式,包括基于Lab空间模型、基于HSV空间模型、基于HLS空间模型、基于YCbCr空间模型等现有的颜色空间转换方式,在此不在详述。
步骤302,将数据矩阵中像素透明度大于预设阈值的区域确定为头发区域,根据原始图像中每个像素的亮度分量,计算获取头发区域的反射系数。
正如在步骤101中分析的,根据数据矩阵中像素透明度的大小可以获取到头发区域,透明度较大的区域对应的像素可以确定为头发区域,在本发明的实施例中,将数据矩阵中像素透明度大于预设阈值的区域确定为头发区域,由此,基于像素的透明度进行头发区域的自动确定,效率较高且误差较小。
不难理解的是,在实际生活中,头发对光线具有反射作用,在染色处理时体现这种反射效果将会大大提高染色的真实感,而反射的强度与像素亮度有关,亮度越高,反射越强,因而,在本发明的实施例中,根据原始图像中每个像素的亮度分量,计算获取头发区域的反射系数。
具体地,与输入的图像对应的数据矩阵中像素透明度大于预设阈值的区域确定为头发区域,对输入的图像中每个像素的颜色值进行颜色空间的数据转换,获取输入的图像中每个像素的亮度分量,具体而言,与输入的图像对应的数据矩阵中像素透明度大于预设阈值的区域确定为头发区域,对输入的图像中每个像素的颜色值进行颜色空间的数据转换,获取输入的图像中每个像素的亮度分量。
当然,根据应用场景的不同,根据原始图像中每个像素的亮度分量,计算获取头发区域的反射系数的方式不同,示例说明如下:
第一种示例:
在本示例中,如图4所示,上述步骤302包括:
步骤401,根据原始图像中每个像素的亮度分量,计算整个图像的第一亮度平均值。
其中,整个图像的第一亮度平均值可以为算数平均值,也可以为加权平均值,在此不作限制。
步骤402,根据头发区域中每个像素的亮度分量,计算头发区域的第二亮度平均值。
具体地,将像素透明度大于预设阈值的区域作为头发区域,提取出对应区域中每个像素的亮度分量,计算头发区域的第二亮度平均值。该第二平均值可以为算数平均值,也可以为加权平均值,在此不作限制。
步骤403,采用预设算法对第一亮度平均值、第二亮度平均值和预设系数进行计算,获取头发区域的反射系数。
其中,预设系数根据应用需要标定,在本发明的一个实施例中,预设系数是一个预设的固定的0到1之间的系数,在一些可能的示例中,该预设系数在具体实施时取0.8。
在不同的应用场景下,预设算法不同,作为一种可能的示例,采用公式K=Lhm/Lgm*R计算对应的反射系数,其中,K为反射系数,Lhm为第二亮度平均值,Lgm为第一平均亮度值,R为与预设系数。
步骤303,根据原始图像中每个像素的亮度分量、反射系数和数据矩阵,计算获取原始图像中每个像素的光照强度。
需要强调的是,参照前述实施例,由于最终对原始图像进行染发处理,因而,如果为了前述实施例的计算,将原始图像的尺寸进行了变化,则在获取原始图像中每个像素的光照强度之前,对与输入的图像对应的数据矩阵进行缩放处理,获取与原始图像尺寸相同的数据矩阵。
可以理解的是,像素的亮度分量体现了头发的明暗、像素的反射系数用于指示在不同的头发颜色和环境光照下图像中的对应的亮度分量应该被如何编辑,数据矩阵体现了头发所在区域等,因而,为了保证染色的真实度,根据原始图像中每个像素的亮度分量、反射系数和数据矩阵,计算获取原始图像中每个像素的光照强度,以便进一步根据每个像素的光照强度计算出对应的染发后的像素值,提高染发的真实度。
在本发明的一个实施例中,基于公式CnL=CL/K*Mask+255*(1.0-Mask)计算原始图像中每个像素的光照强度,其中,CnL为每个像素的光照强度,CL为原始图像中每个像素的亮度分量,K为反射系数,Mask为数据矩阵,255为一个默认值,即使得与头发无关的区域的像素,CnL取默认值255,这一默认值会在后续操作中被抵消从而保持其亮度不变,避免其他非头发区域被影响到。
在实际执行中,根据应用场景的不同,获取原始图像中每个像素的光照强度的方式不同,示例说明如下:
第一种示例:
在本示例中,如图5所示,上述步骤303包括:
步骤501,计算原始图像中每个像素的亮度分量与反射系数的比值获取原始图像中每个像素的第一光照强度。
可以理解,图像中像素的最终亮度为光照强度与反射系数的乘积,从而,在本实施例中,可采用公式LL1=CL/K计算每个像素的第一光照强度,其中,LL1为第一光照强度,CL为原始图像中每个像素的亮度分量,K为反射系数。
步骤502,采用预设算法对原始图像中每个像素的第一光照强度和数据矩阵进行计算,获取原始图像中每个像素的光照强度。
具体地,采用预设算法对原始图像中每个像素的第一光照强度和数据矩阵进行计算,获取原始图像中每个像素的光照强度。
第二种示例:
在本示例中,如图6所示,上述步骤303包括:
步骤601,计算原始图像中每个像素的亮度分量与反射系数的比值获取原始图像中每个像素的第一光照强度。
步骤602,采用预设函数对原始图像中每个像素的第一光照强度进行计算,获取原始图像中每个像素的第二光照强度。
作为一种可能的示例,预设函数为S形的sigmoid函数,从而,基于该函数对每个像素的第一光照强度的值做软截断,获取原始图像中每个像素的第二光照强度。
在本示例中,采用公式LL2=(1.0/1.0+exp(-1.0*(LL1/P1))-0.5)*P2计算第二光照亮度,其中,LL1为第一光照亮度,LL2为第二光照亮度,其中,P1和P2是预设的固定常数,可以根据具体情况设置,在具体实施时取值分别为200和800,exp是以自然对数为底数的指数函数,即当LL增大时,截断后的值增大速度会越来越慢,最终不会超过P2的一半.这一步的目的是防止在一些极端情况下出现编辑结果过亮的情况。
步骤603,采用预设算法对原始图像中每个像素的第二光照强度和数据矩阵进行计算,获取原始图像中每个像素的光照强度。
具体地,采用预设算法对原始图像中每个像素的第二光照强度和数据矩阵进行计算,获取原始图像中每个像素的光照强度。
步骤103,根据指定渲染的目标颜色、染色强度和数据矩阵,确定原始图像中每个像素的目标染色值。
其中,指定渲染的目标颜色和染色强度可以为用户在对应应用程序中手动输入的,也可是用户选定某个明星后根据明星图片识别得到的。
具体地,根据用户指定的染色强度,将目标颜色在根据头发区域的透明度与原始颜色混合得到要染色的颜色,即用户指定的染色强度越大,头发区域的编辑结果会越接近目标色调,用户指定的染色强度越小,头发区域的编辑结果会越接近原始色调,而与头发无关的区域会始终保持原始色调。
作为一种可能的实现方式,采用公式CC=((T*S+I*(1.0-S))*Mask+(1.0-Mask))计算每个像素的目标染色值,其中,CC为每个像素的目标染色值,T为目标颜色,目标颜色T(RGB颜色空间,0到1之间),S为用户指定的染色强度系数(S可为0.0到1.0之间的浮点数),I为原始图像,Mask为数据矩阵。
步骤104,根据原始图像中每个像素的光照强度和对应的目标染色值,计算获取原始图像中每个像素的输出颜色。
步骤105,根据每个像素的输出颜色对原始图像进行颜色编辑处理输出目标图像。
具体地,由于目标染色值最终呈现效果受到光照强度的影响,因而,为了使得最终的染色效果与用户需求相符,在得到目标染色值后,根据原始图像中每个像素的光照强度和对应的目标染色值,计算获取原始图像中每个像素的输出颜色,根据每个像素的输出颜色对原始图像进行颜色编辑处理输出目标图像,比如,对原始图像中对应位置的像素处理为每个像素的输出颜色等。
其中,根据原始图像中每个像素的光照强度和对应的目标染色值,计算获取原始图像中每个像素的输出颜色的方式,包括但不限于以下几种:
第一种示例:
在本示例中,如图7所示,上述步骤104,包括以下步骤:
步骤701,计算原始图像中每个像素的光照强度与预设常数的比值。
其中,预设常数根据应用需要标定,这一预设常数值会在后续操作中被抵消从而保持非头发区域的亮度不变,避免非头发区域被误染发处理。
步骤702,计算每个像素的光照强度与预设常数的比值与对应的目标染色值的乘积,获取原始图像中每个像素的第一输出颜色。
在本发明的一个实施例中,采用公式Iout=CC*CnL/255获取原始图像中每个像素的第一输出颜色,其中,Iout为原始图像中每个像素的第一输出颜色,CC为目标染色值,在一些可能的实施例中,CC可为0到1之间的值,255为预设常数,CnL为每个像素的光照强度,CnL/255是估算得到的图像中每个像素的光照强度。
进一步地,如图7所示,步骤105包括步骤703,根据每个像素的第一输出颜色对原始图像进行颜色编辑处理输出目标图像。
由此,在本示例中,由于物体所呈现的颜色主要取决于它对三原色光的反射率和光本身的强度,染发不会改变头发每个部位接收到的光照强度,只会改变头发对光的反射率,所以在本实力中,直接把要”染发”的目标颜色值CC看做是光的反射率,而CnL/255是估算得到的图像中每个像素的光照强度,两者相乘即为最终编辑后图像上的目标颜色值,且由于本实施例中估算了头发区域的每个像素的光照强度,所以染色结果可以保持真实的纹理和光泽。
第二种示例:
在本示例中,如图8所示,上述步骤104,包括以下步骤:
步骤801,计算原始图像中每个像素的光照强度与预设常数的比值。
其中,预设常数根据应用需要标定,这一预设常数值会在后续操作中被抵消从而保持非头发区域的亮度不变,避免非头发区域被误染发处理。
步骤802,计算每个像素的光照强度与预设常数的比值与对应的目标染色值的乘积,获取原始图像中每个像素的第一输出颜色。
在本发明的一个实施例中,采用公式Iout1=CC*CnL/255获取原始图像中每个像素的第一输出颜色,其中,Iout1为原始图像中每个像素的第一输出颜色,CC为目标染色值,在一些可能的实施例中,CC可为0到1之间的值,255为预设常数,CnL为每个像素的光照强度,CnL/255是估算得到的图像中每个像素的光照强度。
步骤803,采用预设算法对原始图像中每个像素的第一输出颜色、原始图像、以及数据矩阵进行计算,获取原始图像中每个像素的第二输出颜色。
在本发明的一个实施例中,采用公式Iout2=Iout1*Mask+I*(1.0-Mask),其中,Iout1为第一输出颜色,Iout2为第二输出颜色,I为原始图像,Mask为数据矩阵。
在本实施例中,将编辑后的图像和原始图像按照头发的透明度混合,即只有头发区域采用颜色编辑后的结果,其他图像区域保持不变,输出图像中每个像素的最终颜色编辑结果,为0到1的RGB颜色空间值。
进一步地,如图8所示,步骤105包括步骤804,根据每个像素的第二输出颜色对原始图像进行颜色编辑处理输出目标图像。
由此,本发明实施例的图像染发处理方法,使用可以在移动设备(如手机)上实时运行的小规模卷积神经网络通过自动判断图像中的头发区域和其透明度,特别是,神经网络不是输出图像中每个像素是否属于头发区域的判断或者概率,而是输出每个像素在做颜色混合时需要的透明度,基于输出的投影度进行颜色混合,在避免对非头发区域误染色的基础上,保证了染发效果的真实性和自然性。并且,本方案采取预先计算图像中的头发区域的”反射系数”,通过这个反射系数的计算方法进行颜色编辑,可以在保持高真实感的情况下编辑视频图像中的头发区域的颜色,特别是可以将暗色的头发编辑为亮色,且保持头发的纹理和明暗的真实感。
综上所述,本发明实施例的图像染发处理方法,在保证不对非头发区域进行误染色的前提下,可以将各种颜色和光照条件下的头发图像编辑为真实的染发效果,特别是对于较暗的黑色的头发,仍然可以编辑为较为明亮鲜艳的颜色,且保持真实的头发纹理和光泽效果,对用户的多媒体使用会形成一种有趣的效果,不用真正染发就可以看到染发后的自己,有利于提高用户和产品的粘性。
为了实现上述实施例,本发明还提出了一种图像染发处理装置,图9是根据本发明第一个实施例的图像染发处理装置的结构示意图,如图9所示,该图像染发处理装置包括:获取模块100、第一确定模块200、第二确定模块300、计算模块400和处理模块500。
其中,获取模块100,用于对原始图像进行计算,获取反映原始图像中像素透明度的数据矩阵。
第一确定模块200,用于根据数据矩阵和原始图像中每个像素的亮度分量,确定原始图像中每个像素的光照强度。
第二确定模块300,用于根据指定渲染的目标颜色、染色强度以及数据矩阵,确定原始图像中每个像素的目标染色值。
计算模块400,用于根据原始图像中每个像素的光照强度和对应的目标染色值,计算获取原始图像中每个像素的输出颜色。
处理模块500,用于根据每个像素的输出颜色对原始图像进行颜色编辑处理输出目标图像。
在本发明的一个实施例中,如图10所示,第一确定模块200包括第一计算单元210、第二计算单元220和第一获取单元230,其中,
第一计算单元210,用于根据原始图像中每个像素的亮度分量,计算整个图像的第一亮度平均值。
第二计算单元220,用于根据头发区域中每个像素的亮度分量,计算头发区域的第二亮度平均值。
第一获取单元230,用于采用预设算法对第一亮度平均值、第二亮度平均值和预设系数进行计算,获取头发区域的反射系数。
第一确定模块200,用于根据原始图像中每个像素的亮度分量、反射系数和数据矩阵,计算获取原始图像中每个像素的光照强度。
在本发明的一个实施例中,如图11所示,第一确定模块200包括第三计算单元240、第二获取单元250,其中,第三计算单元240,用于计算原始图像中每个像素的亮度分量与反射系数的比值获取原始图像中每个像素的第一光照强度。
第二获取单元250,用于采用预设算法对原始图像中每个像素的第一光照强度和数据矩阵进行计算,获取原始图像中每个像素的光照强度。
在本发明的一个实施例中,如图12所示,第一确定模块200包括第四计算单元260、第三获取单元270和第四获取单元280,其中,
第四计算单元260,用于计算原始图像中每个像素的亮度分量与反射系数的比值获取原始图像中每个像素的第一光照强度。
第三获取单元270,用于采用预设函数对原始图像中每个像素的第一光照强度进行计算,获取原始图像中每个像素的第二光照强度。
第四获取单元280,用于采用预设算法对原始图像中每个像素的第二光照强度和数据矩阵进行计算,获取原始图像中每个像素的光照强度。
在本发明的一个实施例中,如图13所示,计算模块400包括第五计算单元410、第五获取单元420,其中,
第五计算单元410,用于计算原始图像中每个像素的光照强度与预设常数的比值。
第五获取单元420,用于计算每个像素的光照强度与预设常数的比值与对应的目标染色值的乘积,获取原始图像中每个像素的第一输出颜色。
处理模块500,具体用于根据每个像素的第一输出颜色对原始图像进行颜色编辑处理输出目标图像。
在本发明的一个实施例中,如图14所示,计算模块400包括第六计算单元430、第六获取单440和第七获取单元450,其中,
第六计算单元430,用于计算原始图像中每个像素的光照强度与预设常数的比值。
第六获取单元440,用于计算每个像素的光照强度与预设常数的比值与对应的目标染色值的乘积,获取原始图像中每个像素的第一输出颜色。
第七获取单元450,用于采用预设算法对原始图像中每个像素的第一输出颜色、原始图像、以及数据矩阵进行计算,获取原始图像中每个像素的第二输出颜色。
处理模块500,具体用于根据每个像素的第二输出颜色对原始图像进行颜色编辑处理输出目标图像。
需要说明的是,前述对图像染发处理方法实施例的解释说明也适用于该实施例的图像染发处理装置,此处不再赘述。
综上所述,本发明实施例的图像染发处理装置,在保证不对非头发区域进行误染色的前提下,可以将各种颜色和光照条件下的头发图像编辑为真实的染发效果,特别是对于较暗的黑色的头发,仍然可以编辑为较为明亮鲜艳的颜色,且保持真实的头发纹理和光泽效果,对用户的多媒体使用会形成一种有趣的效果,不用真正染发就可以看到染发后的自己,有利于提高用户和产品的粘性。
为了实现上述实施例,本发明还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行上述实施例示出的图像染发处理方法。图15示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图15显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图15所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图15未显示,通常称为“硬盘驱动器”)。尽管图15中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
为了实现上述实施例,本发明还提出一种计算机可读存储介质,当所述存储介质中的指令由处理器被执行时,使得能够执行上述实施例示出的图像染发处理方法。图16是图示根据本发明一个实施例的计算机可读存储介质的示意图。如图16所示,根据本发明实施例的计算机可读存储介质300,其上存储有非暂时性计算机可读指令301。当该非暂时性计算机可读指令301由处理器运行时,执行前述的本发明各实施例的图像染发处理方法的全部或部分步骤。
图17是本发明实施例提供的执行图像染发处理方法的电子设备的硬件结构示意图,如图17所示,该电子设备包括:
一个或多个处理器610以及存储器620,图17中以一个处理器610为例。
该电子设备还可以包括:输入装置630和输出装置640。
处理器610、存储器620、输入装置630和输出装置640可以通过总线或者其他方式连接,图17中以通过总线连接为例。
存储器620作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的xxx方法对应的程序指令/模块(例如,附图4所示的显示状态切换模块410、列表项移动模块420和编辑操作执行模块430)。处理器610通过运行存储在存储器620中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的xxx方法。
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据xxx装置的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至图像染发处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置630可接收输入的数字或字符信息,以及产生与图像染发处理装置的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器620中,当被所述一个或者多个处理器610执行时,执行上述任意方法实施例中的图像染发处理方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。