本申请实施例涉及图像处理技术领域,特别涉及一种图像染发处理方法、装置、终端和存储介质。
背景技术:
随着互联网技术的发展,基于图像的各种特效处理功能也随之流行。例如,在相关应用程序提供了调整图像中用户头发颜色以实现虚拟染发功能。
在相关技术中,图像虚拟染发处理可以包括以下几个步骤:首先,获取目标图像;然后,从目标图像中提取待调整区域;之后,对待调整区域进行发色调整处理,从而得到发色调整后的目标图像。
在上述相关技术中,染发效果较为单一。
技术实现要素:
本申请实施例提供了一种图像染发处理方法、装置、终端和存储介质,可用于解决相关技术中,染发效果较为单一的技术问题。所述技术方案如下:
一方面,本申请实施例提供了一种图像染发处理方法,所述方法包括:
显示图像拍摄界面;
通过摄像头采集用户图像;
对所述用户图像中的左侧头发区域和右侧头发区域分别进行颜色调整处理,得到目标图像;其中,所述目标图像中所述左侧头发区域和所述右侧头发区域具有不同的颜色效果;
在所述图像拍摄界面中显示所述目标图像。
另一方面,本申请实施例提供了一种图像染发处理装置,其特征在于,所述装置包括:
界面显示模块,用于显示图像拍摄界面;
图像采集模块,用于通过摄像头采集用户图像;
颜色调整模块,用于对所述用户图像中的左侧头发区域和右侧头发区域分别进行颜色调整处理,得到目标图像;其中,所述目标图像中所述左侧头发区域和所述右侧头发区域具有不同的颜色效果;
图像显示模块,用于在所述图像拍摄界面中显示所述目标图像。
再一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的图像染发处理方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的图像染发处理方法。
还一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述图像染发处理方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过对采集的用户图像中,左侧头发区域和右侧头发区域分别进行颜色调整处理,使得最终显示的目标图像中左侧头发区域和右侧头发区域具有不同的颜色效果。相比于相关技术中,仅能够对整个头发区域进行单色调整,本申请实施例提供的技术方案,能够同时分别对左侧头发区域和右侧头发区域进行颜色调整,使左右两侧头发区域具有不同的颜色效果,从而丰富了染发效果,使得最终显示的处理后图像的图像效果得到提升。
附图说明
图1是本申请一个实施例提供的图像染发处理方法的流程图;
图2是本申请另一个实施例提供的图像染发处理方法的流程图;
图3示例性示出了本申请一种确定用户图像中的渲染区域的示意图;
图4示例性示出了本申请一种确定分界线的示意图;
图5示例性示出了本申请不同人脸偏移角度下分界线的示意图;
图6示例性示出了本申请第一渲染图像和第二渲染图像的示意图;
图7示例性示出了本申请一种颜色转换表的示意图;
图8示例性示出了本申请一种获取渲染图像的示意图;
图9示例性示出了本申请染发效果素材的示意图;
图10示例性示出了本申请一种第三渲染图像的示意图;
图11示例性示出了本申请一种获取目标图像的示意图;
图12示例性示出了本申请一种素材配置掩膜图与渲染区域之间的映射关系的示意图;
图13示例性示出了本申请一种目标图像的示意图;
图14示例性示出了本申请另一种目标图像的示意图;
图15是本申请一个实施例提供的图像染发处理装置的框图;
图16是本申请另一个实施例提供的图像染发处理装置的框图;
图17是本申请一个实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请提供的图像染发处理方法可以应用于终端中,该终端可以是手机、平板电脑、智能相机、可穿戴设备等具有图像拍摄功能的电子设备。
终端中安装有目标应用程序,该目标应用程序具有图像染发功能。该目标应用程序可以是发型设计类应用程序、视频类应用程序、游戏类应用程序、即时通讯类应用程序等等。
下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图1,其示出了本申请一个实施例提供的图像染发处理方法的流程图。在本实施例中,主要以该方法应用于上文介绍的终端中来举例说明。该方法可以包括如下几个步骤:
步骤101,显示图像拍摄界面。
用户运行终端中安装的目标应用程序,并显示图像拍摄界面。
可选地,该图像拍摄界面中包括拍摄预览区域、拍摄参数设置区域和拍摄控制区域。其中,拍摄预览区域用于显示取景画面;拍摄参数设置区域用于显示拍摄参数设置控件,比如闪光灯开关控件、hdr(high-dynamicrange,高动态范围)图像开关控件、滤镜控件等等;拍摄控制区域用于显示快门控件,比如快门控件、摄像头切换控件、相册显示控件等等。
本申请实施例并不对图像拍摄界面中不同功能区域的布局,以及不同功能区域中控件的设置方式以及类型进行限定。
步骤102,通过摄像头采集用户图像。
目标应用程序可以调用摄像头,当摄像头被打开时,终端可以通过摄像头采集用户图像。
可选地,上述摄像头可以是前置摄像头也可以是后置摄像头。当摄像头为前置摄像头时,采集的用户图像可以为当前使用该终端的使用者的用户图像;当摄像头为后置摄像头时,采集的用户图像可以为其它用户的用户图像。
可选地,上述用户图像中包括用户的头发区域。该头发区域是指用户的头发在用户图像中所占据的区域。
可选地,上述用户图像可以是拍摄的图片,也可以是本地存储的图片,还可以是从网络上下载的图片。另外,上述用户图像也可以是拍摄的视频中任意一帧图像。
步骤103,对用户图像中的左侧头发区域和右侧头发区域分别进行颜色调整处理,得到目标图像。
在采集到上述用户图像之后,可以分别对用户图像中的左侧头发区域和右侧头发区域进行颜色调整处理,得到目标图像,该目标图像中左侧头发区域和右侧头发区域具有不同的颜色效果。
上述左侧头发区域是指左半边人脸对应的头发区域,右侧头发区域是指右半边人脸对应的头发区域。左半边人脸是指包括左侧眼睛、左侧半个鼻子、左侧半个嘴唇的人脸;右半边人脸是指包括右侧眼睛、右侧半个鼻子、右侧半个嘴唇的人脸。
可选地,左侧头发区域的颜色效果可以是单色颜色效果,也可以是多色颜色效果。类似地,右侧头发区域的颜色效果可以是单色颜色效果,也可以是多色颜色效果。
例如,采集的用户图像中左侧头发区域和右侧头发区域均为黑色,之后,可以将左侧头发区域的颜色调整为蓝色,右侧头发区域调整为红色,也就是说,目标图像中,左侧头发区域的颜色效果为蓝色,右侧头发区域的颜色效果为红色。
又例如,采集的用户图像中左侧头发区域和右侧头发区域均为黑色,之后,可以将左侧头发区域的颜色调整为蓝色和紫色相间,右侧头发区域调整为红色和黄色相间,也就是说,目标图像中,左侧头发区域的颜色效果为蓝色和紫色相间,右侧头发区域的颜色效果为红色和黄色相间。
步骤104,在图像拍摄界面中显示目标图像。
在获取到上述目标图像之后,可以在图像拍摄界面中显示该目标图像。
综上所述,本申请实施例提供的技术方案,通过对采集的用户图像中,左侧头发区域和右侧头发区域分别进行颜色调整处理,使得最终显示的目标图像中左侧头发区域和右侧头发区域具有不同的颜色效果。相比于相关技术中,仅能够对整个头发区域进行单色调整,本申请实施例提供的技术方案,能够同时分别对左侧头发区域和右侧头发区域进行颜色调整,使左右两侧头发区域具有不同的颜色效果,从而丰富了染发效果,使得最终显示的处理后图像的图像效果得到提升。
请参考图2,其示出了本申请另一个实施例提供的图像染发处理的流程图。在本实施例中,主要以该方法应用于上文介绍的终端中来举例说明。。该方法可以包括如下几个步骤:
步骤201,显示图像拍摄界面。
此步骤与图1实施例中步骤101的内容相同或类似,此处不再赘述。
步骤202,通过摄像头采集用户图像。
此步骤与图1实施例中步骤102的内容相同或类似,此处不再赘述。
步骤203,确定用户图像中的分界线。
分界线是基于用户图像中人脸区域的关键点确定的线条。上述人脸区域是指用户图像中人脸所在的区域。上述人脸包括额头、眉毛、眼睛、鼻子、嘴、下巴以及腮等部位。
上述关键点是指位于人脸对称线上的关键点,该对称线左右的区域相对称或近似对称。上述关键点包括但不限于以下至少一项:眉心点、人中点、鼻尖点、嘴唇中心点、额头中心点、下巴中心点,等等。
可选地,上述分界线是指经过眉心点和人中点的线条。当然,在其它示例中,上述分界线也可以是指经过鼻尖和人中点的线条,还可以是指经过嘴唇中心点与额头中心点的线条,或者是指经过下巴中心点和额头中心点的线条,本申请实施例对此不作限定。可选地,上述分界线是指经过第一关键点和第二关键点的线条,其中第一关键点位于人脸对称线上且位于人脸区域的上半部分,第二关键点位于人脸对称线上且位于人脸区域的下半部分。例如,第一关键点可以是额头中心点,第二关键点可以是下巴中心点。
通过将经过人脸区域中关键点的线条确定为分界线,通过该分界线从而能够使得左侧头发区域和右侧头发区域分割的更加准确。
可选地,上述确定用户图像中的分界线,可以包括以下几个子步骤:
(1)确定用户图像中的渲染区域。
上述渲染区域是指包括用户图像中的头发区域的矩形区域。也就是说,渲染区域是能将用户图像中全部头发区域包括在内的矩形区域。
可选地,上述渲染区域是指包括用户图像中的头发区域的最小矩形区域。从而可以减少运算量,提高渲染效率。
在一些其它示例中,渲染区域还可以是圆形区域、椭圆区域或者多边形区域,本申请实施例对此不作限定。
可选地,上述确定用户图像中的渲染区域,可以包括以下几个步骤:
<1>确定用户图像中的人脸偏移角度。
人脸偏移角度用于表征人脸中心线偏移重力方向的角度。
上述人脸偏移角度可以是正值,也可以是负值。在一个示例中,当人脸偏移角度为正值,表示人脸中心线向右偏移一定角度;当人脸偏移角度为负值,表示人脸中心线向左偏移一定角度。在另一个示例中,当人脸偏移角度为正值,表示人脸中心线向左偏移一定角度;当人脸偏移角度为负值,表示人脸中心线向右偏移一定角度。
可选地,上述人脸偏移角度可以是人脸翻滚角,人脸翻滚角的取值范围为[0,180],[0,-180]。
可选地,若人脸偏移角度不区分正负,也就是说,根据该人脸偏移角度并不能得到人脸偏移方向。在这种情况下,还可以确定用户图像中的人脸偏移方向。
<2>根据人脸偏移角度和重力方向,确定人脸中心线。
在确定人脸偏移角度之后,结合重力方向,即可确定出用户图像中的人脸中心线。
<3>根据人脸中心线和头发区域,确定渲染区域。
在确定人脸中心中心线之后,结合用户图像中的头发区域,即可确定出渲染区域,该渲染区域可以是一个包括头发区域的矩形框。
其中,人脸中心线垂直于渲染区域的顶边和底边。需要说明的一点是,上述渲染区域的顶边是位于渲染区域的边中位于头顶上方的边;上述渲染区域的底边是指渲染区域的边中与顶边相平行的边。
示例性地,如图3所示,其示例性示出了一种确定用户图像中的渲染区域的示意图。如图3中的(a)部分所示,人脸偏移角度为-3度,也就是说,人脸中心线向右偏移重力方向3度,从而,可以根据该人脸偏移角度和重力方向,确定出人脸中心线。之后,如图3中的(b)部分所示,根据该人脸中心线,可以找到一个矩形,使得该人脸中心线垂直于矩形的顶边和底边,且包括用户图像中的头发区域,该矩形框即可作为渲染区域。
(2)确定人脸区域的眉心点、人中点和额头中心点。
在确定上述渲染区域之后,进一步可以确定人脸区域的眉心点、人中点和额头中心点。
可选地,上述确定人脸区域的眉心点、人中点和额头中心点,可以通过人脸检测以及特征点定位确定。另外,还可以通过调用人脸识别模型来确定。本申请实施例对此不作限定。
(3)获取第一交点和第二交点。
上述第一交点是指眉心点和额头中心点的连线,与渲染区域的顶边的交点。该第二交点是指经过人中点且与用户图像的底边垂直的直线,与渲染区域的底边的交点。
需要说明的一点是,上述渲染区域的顶边是渲染区域的边中位于头顶上方的边;上述渲染区域的底边是指渲染区域的边中与顶边相平行的边。上述用户图像的底边是指用户图像的边中,与头顶上方的边向平行的边(位于头顶下方的边)。
(4)依次连接第一交点、眉心点、人中点和第二交点,得到分界线。
在获取到上述第一交点、眉心点、人中点和第二交点,将第一交点、眉心点、人中点和第二交点以此连接,即得到分界线。
示例性地,如图4所示,其示例性示出了一种确定分界线的示意图。首先,可以确定用户图像a0c0d0f0中的渲染区域acdf;然后,确定人脸区域的眉心点g、人中点h和额头中心点k;进一步,将眉心点g和额头中心点k连线,并延长,与渲染区域acdf的顶边ac相交,得到第一交点b;过人中点h作用户图像a0c0d0f0的底边d0f0的垂线,与渲染区域acdf的底边df相交,得到第二交点e;最后,依次连接第一交点b、眉心点g、人中点h和第二交点e,得到分界线bghe。
基于上述确定分界线的方法,无论用户图像中的人脸偏移角度为多少,均能够准确确定出分界线。
示例性地,如图5所示,其示例性示出了不同人脸偏移角度下分界线的示意图。从图5中可以看出,无论用户图像中的人脸偏移角度为多少,采用上述确定分界线的方法,均能够确定出各种人脸偏移角度下的分界线。
步骤204,根据分界线确定左侧头发区域和右侧头发区域。
在确定上述分界线之后,可以进一步根据该分界线确定出左侧头发区域和右侧头发区域。其中,左侧头发区域是指位于分界线左侧的头发区域,右侧头发区域是指位于分界线右侧的头发区域。
继续参考图4,左侧头发区域可以是指以abghef为边的区域;有侧头发区域可以是指以cbghed为边的区域。
步骤205,对左侧头发区域和右侧头发区域的像素值分别进行调整,得到目标图像。
在确定上述左侧头发区域和右侧头发区域之后,可以分别对各个区域的像素值进行调整,以得到目标图像。
在一种可能的实施方式中,上述对左侧头发区域和右侧头发区域的像素值分别进行调整,得到目标图像,包括:
(1)对渲染区域进行第一渲染处理得到第一渲染图像;以及,对渲染区域进行第二渲染处理得到第二渲染图像,该第一渲染图像和第二渲染图像具有不同的颜色效果。
示例性地,如图6所示,其示例性示出了第一渲染图像和第二渲染图像的示意图。图6中(a)部分为第一渲染图像;图6中(b)部分为第二渲染图像,第一渲染图像和第二渲染图像具有不同的颜色效果。
可选地,上述对渲染区域进行第一渲染处理得到第一渲染图像,可以包括以下几个步骤:
<1>根据第一颜色转换表,将渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域。
上述第一颜色转换表用于对像素的像素值进行转换。针对一个输入的像素值,查找该第一颜色转换表,即可找到当前像素值对应的转换后的像素值。
示例性地,如图7所示,其示例性示出了一种颜色转换表的示意图。该颜色转换表可以是一张512×512大小的图片,有8×8个正方形大格子组成,每个大格子又由64×64个像素组成。64个大正方形用于b(blue)通道的值,对于每个大格子的内部,它的横轴值即为r(red)通道值,纵轴值即为g(green)通道值。
r、g和b值的范围均为0~255,而目前小正方形的横轴,纵轴,都只有64个像素,肯定不能一一对应,因此,在横轴上,每个小正方形的r通道的差为:256/64=4,r通道的集合为[0,4,8,12,16,...,255];同理从纵轴上看,每个小正方形的g通道的差为:256/64=4,g通道的集合为[0,4,8,12,16,...,255]。
从而,就可以通过转换前像素的像素值,找到颜色转换表对应坐标的像素值,即为转换后的像素值。
<2>采用第一染发效果素材对转换后的渲染区域进行渲染,得到第一渲染图像。
上述第一染发效果素材是设计者预先提供的染发效果素材。
可选地,上述第一染发效果素材包括以下至少一项:柔光素材、正片叠底素材、强光素材和叠加素材。此外,还可以包含一些其它素材,如虚化素材,本申请实施例对此不作限定。
可选地,上述采用第一染发效果素材对所述转换后的渲染区域进行渲染,得到所述第一渲染图像,可以包括以下几个步骤:
采用柔光素材对转换后的渲染区域进行柔光处理,得到第一中间图像;
采用正片叠底素材对第一中间图像进行正片叠底处理,得到第二中间图像;
采用强光素材对第二中间图像进行强光处理,得到第三中间图像;
采用叠加素材对第三中间图像进行叠加处理,得到第一渲染图像。
示例性地,如图8所示,首先,如图8中(a)部分所示,其为用户图像中的渲染区域;根据第一颜色转换表,对该渲染区域中的像素值进行转换,得到如图8中(b)部分所示转换后的渲染区域。之后,可以采用柔光素材对转换后的渲染区域进行柔光处理,得到如图8中(c)部分所示的第一中间图像;然后,采用正片叠底素材对该第一中间图像进行正片叠底处理,得到如图8中(d)部分所示的第二中间图像;采用强光素材对第二中间图像进行强光处理,得到如图8中(e)部分所示的第三中间图像;最后,采用叠加素材对第三中间图像进行叠加处理,得到如图8中(f)部分所示的第一渲染图像。
需要说明的一点是,采用第一染发效果素材对转换后的渲染区域进行渲染,可以包括上述四个步骤中的至少一个,当第一染发效果素材中还包括其它素材时,还可以包括其它处理步骤,本申请实施例对此不作限定。
对渲染区域进行第二渲染处理得到第二渲染图像的步骤,与上述对渲染区域进行第一渲染处理得到第一渲染图像的步骤相同或类似。主要可以包括以下几个步骤:
<1>根据第二颜色转换表,将渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域。
<2>采用第二染发效果素材对转换后的渲染区域进行渲染,得到第二渲染图像。
上述采用第二染发效果素材对转换后的渲染区域进行渲染,得到第二渲染图像的步骤,与采用第一染发效果素材对所述转换后的渲染区域进行渲染,得到所述第一渲染图像的步骤相同或类似,此处不再赘述。
可选地,在对渲染区域进行第一渲染处理得到第一渲染图像;以及,对渲染区域进行第二渲染处理得到第二渲染图像之前,还需要获取第一颜色转换表、第二颜色转换表、第一染发效果素材和第二染发效果素材。
示例性地,如图9所示,得到第一渲染图像需要第一颜色转换表和第一染发效果素材,其中,第一染发效果素材包括柔光素材、正片叠底素材、强光素材和叠加素材。得到第二渲染图像需要第二颜色转换表和第二染发效果素材,其中,第二染发效果素材包括柔光素材、正片叠底素材、强光素材和叠加素材。
(2)提取第一渲染图像中与左侧头发区域相对应的区域的像素值,得到第一区域像素值;以及,提取第二渲染图像中与右侧头发区域相对应的区域的像素值,得到第二区域像素值;
在获取到上述第一渲染图像之后,可以结合左侧头发区域的位置,确定第一渲染图像中与左侧头发区域相对应的区域,进一步可以提取该区域的像素值,得到第一区域像素值。
类似地,在获取到上述第二渲染图像之后,可以结合右侧头发区域的位置,确定第二渲染图像中与右侧头发区域相对应的区域,进一步可以提取该区域的像素值,得到第二区域像素值。
(3)将第一区域像素值填充至左侧头发区域,将第二区域像素值填充至右侧头发区域,得到第三渲染图像。
在确定上述第一区域像素值和第二区域像素值之后,可以将第一区域像素值填充至左侧头发区域,将第二区域像素值填充至右侧头发区域,从而得到第三渲染图像。该第三渲染图像中,分界线左侧和右侧具有不同的颜色效果。
示例性地,如图10所示,其示例性示出了一种第三渲染图像的示意图。图10中(a)部分所示为第一渲染图像,其具有第一颜色效果;图10中(b)部分所示为第二渲染图像,其具有第二颜色效果;图10中(c)部分所示为第三渲染图像,该第三渲染图像的左侧具有第一颜色效果,右侧具有第二颜色效果。
(4)根据第三渲染图像和头发分割参考图,得到目标图像。
其中,头发分割参考图是指用户图像对应的,且分割有头发区域和非头发区域的图像。上述头发分割参考图也可称为头发区域掩膜图。
可选地,可以调用图像分割模型对所户图像进行处理,得到头发分割参考图;其中,图像分割模型用于分割用户图像中的头发区域和非头发区域。该图像分割模型可以是mobilenetv2模型,还可以是resnet50模型,还可以是mobilenetv1模型,还可以是deeplabv3+模型等等,本申请实施例对此不作限定。
示例性地,如图11所示,其示例性示出了获取目标图像的示意图。图11中(a)部分为第三渲染图像,图11中(b)部分为头发分割参考图,根据该第三渲染图像和头发分割参考图,即可以从第三渲染图中确定出头发区域,进一步得到如图11中(c)部分所示的目标图像。
在另一种可能的实施方式中,上述对左侧头发区域和右侧头发区域的像素值分别进行调整,得到目标图像,包括:
(1)对渲染区域进行第一渲染处理得到第一渲染图像;以及,对渲染区域进行第二渲染处理得到第二渲染图像,第一渲染图像和第二渲染图像具有不同的颜色效果。
此步骤与上文介绍内容相同或类似,此处不再赘述。
(2)根据素材配置掩膜图与渲染区域之间的映射关系,确定渲染区域中各个像素的像素值计算方式。
上述素材配置掩膜图用于提供各个像素的像素值计算方式。
示例性地,如图12所示,其示例性示出了素材配置掩膜图与渲染区域之间的映射关系的示意图。如图12中的(a)部分所示,素材配置掩膜图可以为矩形图像。素材配置掩膜图中包括四个顶点a’、c’、d’和f’;顶边中心点b’、底边中心点e’、顶边中心点b’与底边中心点e’连线的三分之一位置点g’,以及顶边中心点b’与底边中心点e’连线的三分之二位置点h’。渲染区域中包括四个顶点a、c、d和f;第一交点b、眉心点g、人中点h,以及第二交点e。
其中,素材配置掩膜图的四个顶点a’、c’、d’和f’与渲染区域的四个顶点a、c、d和f具有映射关系;素材配置掩膜图的顶边中心点b’与第一交点b具有映射关系;素材配置掩膜图的底边中心点e’与第二交点e具有映射关系;素材配置掩膜图的顶边中心点b’与底边中心点e’连线的三分之一位置点g’,与眉心点g具有映射关系;素材配置掩膜图的顶边中心点b’与底边中心点e’连线的三分之二位置点h’,与人中点h具有映射关系。
可选地,上述根据渲染区域中各个像素的像素值计算方式、第一渲染图像和第二渲染图像,确定渲染区域中各个像素的像素值,包括以下几个步骤:
对于渲染区域中的第i个像素,获取第i个像素在第一渲染图像中的对应像素的像素值,以及在第二渲染图像中的对应像素的像素值;根据第i个像素的像素值计算方式、第i个像素在第一渲染图像中的对应像素的像素值,以及在第二渲染图像中的对应像素的像素值,确定第i个像素的像素值;其中,i为正整数。
上述第i个像素的像素值计算方式,可以是第i个像素在第一渲染图像中的对应像素的像素值与第i个像素在第二渲染图像中的对应像素的像素值的权重和。
示例性地,假设第i个像素在第一渲染图像中的对应像素的像素值为x1,第i个像素在第二渲染图像中的对应像素的像素值为x2,则第i个像素的像素值计算方式可以表示为(1-w)*x1+w*x2,其中,w表示该第i个像素的像素值中与第二渲染图像中的对应像素的像素值所占据的权重。
(3)根据渲染区域中各个像素的像素值计算方式、第一渲染图像和第二渲染图像,确定渲染区域中各个像素的像素值。
(4)将渲染区域中各个像素的像素值填充至渲染区域,得到第四渲染图像。
此步骤与上文介绍内容相同或类似,此处不再赘述。
(5)根据第四渲染图像和头发分割参考图,得到目标图像。
其中,头发分割参考图是指用户图像对应的,且分割有头发区域和非头发区域的图像。
此步骤与上文介绍内容相同或类似,此处不再赘述。
通过上述像素值计算方式的方法,得到的目标图像,由于其是根据第一渲染图像和第二渲染图像中对应像素的像素值计算得到的,从而能够使得左侧头发区域和左侧头发区域之间的两种颜色效果过渡的更加自然。
在又一个可能的实施方式中,上述目标图像还可以通过以下步骤得到:
(1)根据第一颜色转换表,将渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域。(2)采用第一染发效果素材对转换后的渲染区域进行渲染,得到第二渲染图像。(3)根据步骤(2)得到的转换后的渲染区域和头发分割参考图,得到第一目标图像,上述第一目标图像的头发区域具有第一颜色效果。(4)采用第二染发效果素材对转换后的渲染区域进行渲染,得到第二渲染图像。(5)根据第二颜色转换表,将渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域。(6)根据步骤(5)得到的转换后的渲染区域和头发分割参考图,得到第二目标图像,上述第二目标图像的头发区域具有第二颜色效果。(7)提取第一目标图像中与左侧头发区域相对应的区域的像素值,得到第一区域像素值;以及,提取第二目标图像中与右侧头发区域相对应的区域的像素值,得到第二区域像素值;(8)将第一区域像素值填充至左侧头发区域,将第二区域像素值填充至右侧头发区域,得到目标图像。
在又一个可能的实施方式中,上述目标图像还可以通过以下步骤得到:
(1)根据第一颜色转换表,将渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域。(2)采用第一染发效果素材对转换后的渲染区域进行渲染,得到第二渲染图像。(3)根据步骤(2)得到的转换后的渲染区域和头发分割参考图,得到第一目标图像,上述第一目标图像的头发区域具有第一颜色效果。(4)采用第二染发效果素材对转换后的渲染区域进行渲染,得到第二渲染图像。(5)根据第二颜色转换表,将渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域。(6)根据步骤(5)得到的转换后的渲染区域和头发分割参考图,得到第二目标图像,上述第二目标图像的头发区域具有第二颜色效果。(7)根据素材配置掩膜图与渲染区域之间的映射关系,确定渲染区域中各个像素的像素值计算方式。(8)根据渲染区域中各个像素的像素值计算方式、第一目标图像和第二目标图像,确定头发区域中各个像素的像素值;(9)将头发区域中各个像素的像素值填充至头发区域,得到目标图像。
步骤206,在图像拍摄界面中显示目标图像。
此步骤与图1实施例中步骤104的内容相同或类似,此处不再赘述。
综上所述,本申请实施例提供的技术方案,通过准确确定用户图像中的分界线,进一步根据该分界线确定出左侧头发区域和右侧头发区域,并对左侧头发区域和右侧头发区域的像素值分别进行调整,从而得到左侧头发区域和右侧头发区域具有不同颜色效果的图像。由于上述分界线是根据人脸区域的关键点(如眉心点、人重点和额头中心点)确定的线条,使得无论人脸偏移角度如何变化,都能够准确确定出分界线,从而能够准确确定出左侧头发区域和右侧头发区域,进一步能够保证左侧头发区域和右侧头发区域各自具有不同的颜色效果。
另外,通过将经过人脸区域中关键点的线条确定为分界线,通过该分界线从而能够使得左侧头发区域和右侧头发区域分割的更加准确,且无论用户图像中的人脸偏移角度为多少,均能够准确确定出分界线。
另外,通过像素值计算方式的方法,得到的目标图像,由于其是根据第一渲染图像和第二渲染图像中对应像素的像素值计算得到的,从而能够使得左侧头发区域和左侧头发区域之间的两种颜色效果过渡的更加自然。
下面,从终端侧来介绍本申请实施例所提供技术方案的有益效果。
如图13所示,其示例性示出了一种目标图像的示意图。如图13所示,用户可以将摄像头调整为自拍模式。图像拍摄界面130中包括图像拍摄控件131,用户点击该图像拍摄控件131,即可通过摄像头采集图像。上述图像拍摄界面130中还包括图像染发控件132,用户点击该图像染发控件132之后,得到目标图像,该目标图像中左侧头发区域和右侧头发区域具有不同的颜色效果。可选地,用户还可以通过语音或者表情来触发染发处理。在一起其它实施例中,在检测到人脸时,即可进行染发处理。本申请实施例对此不作限定。如图14所示,当用户的人脸偏移角度发生变化时,采用本申请实施例提供的技术方案,仍然能够准确确定出分界线,并保证左侧头发区域和右侧头发区域各自具有不同的颜色效果,且不会混杂。即使用户在拍摄时随意扭动头部,也能保证左侧头发区域和右侧头发区域各自具有不同的颜色效果。
本申请实施例提供的技术方案,提供了一种全新的染发效果,为用户提供了更多的选择。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图15,其示出了本申请一个实施例提供的图像染发处理装置的框图。该装置具有实现上述图像染发处理方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端,也可以设置在终端上。该装置1500可以包括:界面显示模块1510、图像采集模块1520、颜色调整模块1530和图像显示模块1540。
界面显示模块1510,用于显示图像拍摄界面。
图像采集模块1520,用于通过摄像头采集用户图像。
颜色调整模块1530,用于对所述用户图像中的左侧头发区域和右侧头发区域分别进行颜色调整处理,得到目标图像;其中,所述目标图像中所述左侧头发区域和所述右侧头发区域具有不同的颜色效果。
图像显示模块1540,用于在所述图像拍摄界面中显示所述目标图像。
综上所述,本申请实施例提供的技术方案,通过对采集的用户图像中,左侧头发区域和右侧头发区域分别进行颜色调整处理,使得最终显示的目标图像中左侧头发区域和右侧头发区域具有不同的颜色效果。相比于相关技术中,仅能够对整个头发区域进行单色调整,本申请实施例提供的技术方案,能够同时分别对左侧头发区域和右侧头发区域进行颜色调整,使左右两侧头发区域具有不同的颜色效果,从而丰富了染发效果,使得最终显示的处理后图像的图像效果得到提升。
在一些可能的设计中,如图16所示,所述颜色调整模块1530包括:
分界线确定单元1531,用于确定所述用户图像中的分界线,所述分界线是基于所述用户图像中人脸区域的关键点确定的线条。
区域确定单元1532,用于根据所述分界线确定所述左侧头发区域和所述右侧头发区域,所述左侧头发区域是指位于所述分界线左侧的头发区域,所述右侧头发区域是指位于所述分界线右侧的头发区域。
像素调整单元1533,用于对所述左侧头发区域和所述右侧头发区域的像素值分别进行调整,得到所述目标图像。
在一些可能的设计中,所述分界线确定单元1531,用于确定所述用户图像中的渲染区域,所述渲染区域是指包括所述用户图像中的头发区域的矩形区域;确定所述人脸区域的眉心点、人中点和额头中心点;获取第一交点和第二交点;其中,所述第一交点是指所述眉心点和所述额头中心点的连线,与所述渲染区域的顶边的交点,所述第二交点是指经过所述人中点且与所述用户图像的底边垂直的直线,与所述渲染区域的底边的交点;依次连接所述第一交点、所述眉心点、所述人中点和所述第二交点,得到所述分界线。
在一些可能的设计中,所述分界线确定单元1531,用于确定所述用户图像中的人脸偏移角度,所述人脸偏移角度用于表征人脸中心线偏移重力方向的角度;根据所述人脸偏移角度和所述重力方向,确定所述人脸中心线;根据所述人脸中心线和所述头发区域,确定所述渲染区域;其中,所述人脸中心线垂直于所述渲染区域的顶边和底边。
在一些可能的设计中,所述像素调整单元1533,用于对所述渲染区域进行第一渲染处理得到第一渲染图像;以及,对所述渲染区域进行第二渲染处理得到第二渲染图像,所述第一渲染图像和所述第二渲染图像具有不同的颜色效果;提取所述第一渲染图像中与所述左侧头发区域相对应的区域的像素值,得到第一区域像素值;以及,提取所述第二渲染图像中与所述右侧头发区域相对应的区域的像素值,得到第二区域像素值;将所述第一区域像素值填充至所述左侧头发区域,将所述第二区域像素值填充至所述右侧头发区域,得到第三渲染图像;根据所述第三渲染图像和头发分割参考图,得到所述目标图像;其中,所述头发分割参考图是指所述用户图像对应的,且分割有头发区域和非头发区域的图像。
在一些可能的设计中,所述像素调整单元1533,用于对所述渲染区域进行第一渲染处理得到第一渲染图像;以及,对所述渲染区域进行第二渲染处理得到第二渲染图像,所述第一渲染图像和所述第二渲染图像具有不同的颜色效果;根据素材配置掩膜图与所述渲染区域之间的映射关系,确定所述渲染区域中各个像素的像素值计算方式;根据所述渲染区域中各个像素的像素值计算方式、所述第一渲染图像和所述第二渲染图像,确定所述渲染区域中各个像素的像素值;将所述渲染区域中各个像素的像素值填充至所述渲染区域,得到第四渲染图像;根据所述第四渲染图像和头发分割参考图,得到所述目标图像;其中,所述头发分割参考图是指所述用户图像对应的,且分割有头发区域和非头发区域的图像。
在一些可能的设计中,所述素材配置掩膜图为矩形图像;所述素材配置掩膜图的四个顶点与所述渲染区域的四个顶点具有所述映射关系;所述素材配置掩膜图的顶边中心点与所述第一交点具有所述映射关系;所述素材配置掩膜图的底边中心点与所述第二交点具有所述映射关系;所述素材配置掩膜图的所述顶边中心点与所述底边中心点连线的三分之一位置点,与所述眉心点具有所述映射关系;所述素材配置掩膜图的所述顶边中心点与所述底边中心点连线的三分之二位置点,与所述人中点具有所述映射关系。
在一些可能的设计中,所述像素调整单元1533,用于对于所述渲染区域中的第i个像素,获取所述第i个像素在所述第一渲染图像中的对应像素的像素值,以及在所述第二渲染图像中的对应像素的像素值;根据所述第i个像素的像素值计算方式、所述第i个像素在所述第一渲染图像中的对应像素的像素值,以及在所述第二渲染图像中的对应像素的像素值,确定所述第i个像素的像素值;其中,所述i为正整数。
在一些可能的设计中,所述像素调整单元1533,用于根据第一颜色转换表,将所述渲染区域中各个像素的像素值进行转换,得到转换后的渲染区域;采用第一染发效果素材对所述转换后的渲染区域进行渲染,得到所述第一渲染图像。
在一些可能的设计中,所述像素调整单元1533,用于采用柔光素材对所述转换后的渲染区域进行柔光处理,得到第一中间图像;采用正片叠底素材对所述第一中间图像进行正片叠底处理,得到第二中间图像;采用强光素材对所述第二中间图像进行强光处理,得到第三中间图像;采用叠加素材对所述第三中间图像进行叠加处理,得到所述第一渲染图像。
在一些可能的设计中,如图16所示,所述装置1500还包括:模型处理模块1550。
模型处理模块1550,用于调用图像分割模型对所述用户图像进行处理,得到所述头发分割参考图;其中,所述图像分割模型用于分割所述用户图像中的所述头发区域和所述非头发区域。
在一些可能的设计中,如图16所示,所述装置1500还包括:动态生成模块1560。
动态生成模块1560,用于生成包括所述目标图像的动态图片或者视频。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图17,其示出了本申请一个实施例提供的终端的结构框图。通常,终端1700包括有:处理器1701和存储器1702。
处理器1701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(fieldprogrammablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1701可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器1702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1702中的非暂态的计算机可读存储介质用于存储至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集用于被处理器1701所执行以实现本申请中方法实施例提供的图像染发处理方法。
在一些实施例中,终端1700还可选包括有:外围设备接口1703和至少一个外围设备。处理器1701、存储器1702和外围设备接口1703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1703相连。具体地,外围设备可以包括:通信接口1704、显示屏1705、音频电路1706、摄像头组件1707、定位组件1708和电源1709中的至少一种。
本领域技术人员可以理解,图17中示出的结构并不构成对终端1700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述图像染发处理方法。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被处理器执行时,其用于实现上述图像染发处理方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。