一种图像处理方法、装置、计算机设备和计算机存储介质
技术领域
本发明实施例涉及计算机视觉通信领域,涉及但不限于一种图像处理方法、装置、计算机设备和计算机存储介质。
背景技术
下巴和下颚线是脸型的重心,可提供美丽的脸型线条。一个迷人的下巴,可以带出上颚、嘴唇和下颚的整体美感。传统的二维(2-Dimensional,2D)下巴塑性算法主要借助于人脸检测技术和简单的变形算法对图片中人的下巴进行“拉伸”操作,从而达到简单的“下巴”微调效果。目前传统的2D下巴塑性算法还有很大的局限性。变形算法的效果十分依赖于人脸检测技术的准确度,细微的偏差就可能导致“整形失败”;高精度的、特征点密集的人脸检测模型有着高昂的耗时,是美颜相机拍照和实时预览功能所不能接受的;人的下巴具有复杂的立体形状,传统算法通常只能处理简单的正脸下巴,难以处理不同角度、大小和形状的下巴;因此,2D美颜难以做出有立体感的五官变形,单纯的形变只能简单地伸缩和推动下巴轮廓,达不到立体饱满的效果。
发明内容
有鉴于此,本发明实施例提供一种图像处理方法、装置、计算机设备和计算机存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种图像处理方法,所述方法包括:
确定人脸图像中待处理的目标区域;
将所述目标区域划分成N个子区域,N为大于等于2的整数;
分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。
在本发明实施例中,所述确定人脸图像中待处理的目标区域,包括:
根据获取的所述下巴区域的第一特征点集和所述下巴区域的人脸角度信息确定所述下巴区域的填充方向;
根据所述填充方向和第一特征点集确定所述下巴区域的中心点;
根据所述中心点、所述第一特征点集和调整参数确定第二特征点集;
对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集;
根据所述中心点、所述第二点集和预设的比例确定所述目标区域。
在本发明实施例中,所述根据所述中心点、所述第一特征点集和调整参数确定第二特征点集,包括:
确定所述中心点和所述第一特征点之间的第一距离;
根据所述调整参数调整所述第一距离,确定第一调整距离;
将所述第一特征点沿所述填充方向延伸所述第一调整距离得到的端点,确定为所述第一特征点相应的第二特征点;
获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。
在本发明实施例中,所述将所述目标区域划分成N个子区域,包括:
分别确定所述目标区域的中心点与所述第二点集的第i个第二点之间的第二距离和所述中心点与第i+1个第二点之间的第三距离,其中,i=1,2,…,N,(N+1)为第二点的总数;
根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点;
将所述中心点、第i调整点和第i+1调整点依次连接构成第i个三角子区域。
在本发明实施例中,所述根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点,包括:
根据所述第二距离、所述第三距离和预设的第二调整比例确定第二调整距离和第三调整距离;
将所述第i个第二点沿所述填充方向延伸所述第二调整距离得到的端点,确定为第i调整点;其中,第i调整点在所述中心点和所述第i个第二点的第二连线上;
将所述第i+1个第二点沿所述填充方向延伸所述第三调整距离得到的端点,确定为第i+1调整点。
在本发明实施例中,所述分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像,包括:
获取第i个三角子区域中的第j个像素点的位置信息;
根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数;
根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置;
根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值;
将所述第j个像素点的像素值更新为所述目标像素值,得到对下巴处理后的美化图像。
在本发明实施例中,所述根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数,包括:
将所述中心点和所述第j个像素点的第四连线沿所述填充方向进行延伸,与第i个第一点、第i+1个第一点的连线相交于第一交点、与第i个第二点、所述第i+1个第二点的连线相交与第二交点、与三角面子区域的底边相交于第三交点,其中,所述三角面子区域的底边为所述第i调整点与所述第i+1调整点的连线;
根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,所述第四距离为所述中心点与所述第一交点之间的距离,所述第五距离为所述中心点与所述第二交点之间的距离,所述第六距离为所述中心点与所述第三交点之间的距离。
在本发明实施例中,所述根据第四距离、第五距离和第六距离确定伸缩变换函数,包括:
确定所述第四距离与所述第六距离之间的第一比值、所述第五距离与所述第六距离之间的第二比值;
根据所述第一比值和所述第二比值确定第一坐标;
将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数;
将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;
根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。
在本发明实施例中,所述根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置,包括:
根据所述第j个像素点的位置信息确定所述第j个像素点与所述中心点之间的第七距离;
确定所述第七距离与所述第六距离之间的第三比值;
将所述第三比值作为所述伸缩变换函数的输入,得到输出值;
根据所述输出值和所述第六距离确定第八距离,其中,所述第八距离为第j个目标位置与所述中心点之间的距离;
根据所述第八距离和所述中心点确定所述第j个目标位置。
在本发明实施例中,所述根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值,包括:
响应于所述目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值;
响应于所述目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值,将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。
本发明实施例提供一种图像处理装置,所述装置至少包括:第一确定模块、划分模块和伸缩变换模块,其中:
所述第一确定模块,用于确定人脸图像中待处理的目标区域;
所述划分模块,用于将所述目标区域划分成N个子区域,N为大于等于2的整数;
所述伸缩变换模块,用于分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。
在本发明实施例中,所述第一确定模块,包括:
第一确定单元,用于根据获取的所述下巴区域的第一特征点集和所述下巴区域的人脸角度信息确定所述下巴区域的填充方向;
第二确定单元,用于根据所述填充方向和第一特征点集确定所述下巴区域的中心点;
第三确定单元,用于根据所述中心点、所述第一特征点集和调整参数确定第二特征点集;
插值单元,用于对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集;
第四确定单元,用于根据所述中心点、所述第二点集和预设的比例确定所述目标区域。
在本发明实施例中,所述第三确定单元,包括:
第一确定子单元,用于确定所述中心点和所述第一特征点集中各个第一特征点之间的第一距离;
第二确定子单元,用于根据所述调整参数确定第一调整比例;
第二特征点集确定子单元,用于根据所述第一距离和所述第一调整比例确定第一调整距离;
第一调整单元,用于将所述第一特征点沿所述填充方向延伸所述第一调整距离得到的端点,确定为所述第一特征点相应的第二特征点;
第二特征点集确定子单元,用于获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。
在本发明实施例中,所述划分模块,包括:
第五确定单元,用于分别确定所述目标区域的中心点与所述第二点集的第i个第二点之间的第二距离和所述中心点与第i+1个第二点之间的第三距离,其中,i=1,2,…,N;
第六确定单元,用于根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点;
连接单元,用于将所述中心点、第i调整点和第i+1调整点依次连接构成第i个三角子区域。
在本发明实施例中,所述第六确定单元,包括:
第四确定子单元,用于根据所述第二距离、所述第三距离和预设的第二调整比例确定第二调整距离和第三调整距离;
第二调整单元,用于将所述第i个第二点沿所述填充方向延伸所述第二调整距离得到的端点,确定为第i调整点;其中,第i调整点在所述中心点和所述第i个第二点的第二连线上;
第三调整单元,用于将所述第i+1个第二点沿所述填充方向延伸所述第三调整距离得到的端点,确定为第i+1调整点。
在本发明实施例中,所述伸缩变换模块,包括:
第一获取单元,用于获取第i个三角子区域中的第j个像素点的位置信息;
第七确定单元,用于根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数;
第八确定单元,用于根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置;
第九确定单元,用于根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值;
更新单元,用于将所述第j个像素点的像素值更新为所述目标像素值,得到对下巴处理后的美化图像。
在本发明实施例中,所述第七确定单元,包括:
第一延伸子单元,用于将所述中心点和所述第j个像素点的第四连线沿所述填充方向进行延伸,与第i个第一点、第i+1个第一点的连线相交于第一交点、与所述第i个第二点、所述第i+1个第二点的连线相交与第二交点、与三角面子区域的底边相交于第三交点,其中,所述三角子区域的底边为所述第i调整点与所述第i+1调整点的连线;
伸缩子单元,用于根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,所述第四距离为所述中心点与所述第一交点之间的距离,所述第五距离为所述中心点与所述第二交点之间的距离,所述第六距离为所述中心点与所述第三交点之间的距离。
在本发明实施例中,所述伸缩子单元,还用于确定所述第四距离与所述第六距离之间的第一比值、所述第五距离与所述第六距离之间的第二比值;根据所述第一比值和所述第二比值确定第一坐标;将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数;将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。
在本发明实施例中,所述第八确定单元,包括:
第五确定子单元,用于根据所述第j个像素点的位置信息确定所述第j个像素点与所述中心点之间的第七距离;
第六确定子单元,用于确定所述第七距离与所述第六距离之间的第三比值;
输出子单元,用于将所述第三比值作为所述伸缩变换函数的输入,得到输出值;
第七确定子单元,用于根据所述输出值和所述第六距离确定第八距离,其中,所述第八距离为第j个目标位置与所述中心点之间的距离;
第八确定子单元,用于根据所述第八距离和所述中心点确定所述第j个目标位置。
在本发明实施例中,所述第九确定单元,包括:
第九确定子单元,用于响应于所述目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值;
第十确定子单元,用于响应于所述目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值;
第十一确定子单元,用于将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现本发明实施例提供的图像处理方法中的步骤。
本发明实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现本发明实施例提供的图像处理方法中的步骤。
本发明实施例提供一种图像处理方法、装置、计算机设备和计算机存储介质,其中,首先,确定人脸图像中待处理的目标区域;然后,将所述目标区域划分成N个子区域,N为大于等于2的整数;最后,分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像;如此,通过对人脸图像中的下巴区域划分成N个连续的三角子区域,再利用预设的伸缩变换算法对下巴进行调整,从而针对下巴轮廓周围一定范围区域进行整体形变,不仅可以减缓特征点误差带来的负面影响,而且整体效果更稳定,调整后的下巴更加美观。
附图说明
图1A为本发明实施例网络架构的组成结构示意图;
图1B为本发明实施例图像处理方法的实现流程示意图;
图1C为本发明实施例实现图像处理方法的网络架构图;
图1D为本发明实施例又一实现图像处理方法的网络架构图;
图2为本发明实施例图像处理方法的又一实现流程示意图;
图3为本发明实施例图像处理方法的另一实现流程示意图;
图4为本发明实施例下巴和目标下巴轮廓的拟合折线段的示意图;
图5为本发明实施例将下巴拆分成多个三角面片的示意图;
图6为本发明实施例一个三角面片的组成结构图;
图7A为本发明实施例拉伸下巴对应的伸缩变换函数的曲线图;
图7B为本发明实施例收缩下巴对应的伸缩变换函数的曲线图;
图8为本发明实施例对一个三角面片进行拉伸变换的示意图;
图9为本发明实施例拉伸下巴区域的效果图;
图10为本发明实施例对一个三角面片进行收缩变换的示意图;
图11为本发明实施例收缩下巴区域的效果图;
图12为本发明实施例图像处理装置的组成结构示意图;
图13为本发明实施例计算机设备的组成结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例先提供一种网络架构,图1A为本发明实施例网络架构的组成结构示意图,如图1A所示,该网络架构包括两个或多个计算机设备11至1N和服务器30,其中计算机设备11至1N与服务器30之间通过网络21进行交互。计算机设备11至1N可以认为是安装有能够采用本发明实施例提供的图像处理方法的APP的终端设备,当用户将待处理的人脸图像输入该APP,APP将人脸图像传送到服务器30,然后服务器30采用本实施例的图像处理方法对该人脸图像进行处理,得到处理后的图像,并返回该APP,最后将处理后的图像在计算机设备11至1N的所述APP中进行显示。计算机设备在实现的过程中可以为各种类型的具有信息处理能力的计算机设备,例如所述计算机设备可以包括手机、平板电脑、台式机、个人数字助理、导航仪、数字电话、电视机等。
本实施例提出一种图像处理方法,能够有效的解决2D美颜难以做出有立体感的五官变形,单纯的形变只能简单地伸缩和推动下巴轮廓,达不到立体饱满的问题,该方法应用于计算机设备,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
本发明实施例提供一种图像处理方法,图1B为本发明实施例图像处理方法的实现流程图,如图1B所示,所述方法包括以下步骤:
步骤S101,确定人脸图像中待处理的目标区域。
这里,所述确定人脸图像中待处理的目标区域,可以理解为,如图5所示,以点A为中心点,与下巴实际轮廓以及目标轮廓上左右两侧的端点进行连接,形成扇形区域,该扇形区域即为待处理的目标区域。所述待处理的目标区域至少包括人脸图像中的下巴区域;所述人脸图像可以是以任意角度拍摄的包含下巴区域的图像,比如,自拍或者侧面拍得到的人脸图像。所述步骤S101可以是由计算机设备实现的,进一步地,所述计算机设备可以是智能终端,例如可以是移动电话(手机)、平板电脑、笔记本电脑等具有无线通信能力的移动终端设备,还可以是台式计算机等不便移动的智能终端设备。所述计算机设备用于对待处理的目标区域进行处理。
步骤S102,将所述目标区域划分成N个子区域。
这里,所述N个子区域可以是N个连续的三角面片;所述步骤S102可以理解为是:将所述目标区域划分成N个连续的三角面片,其中,N为大于等于2的整数;每一所述三角面片内嵌具有相同顶角的第一子三角面片和具有相同顶角的第二子三角面片。其中,所述将所述目标区域划分成N个连续的三角面片,包括:在所述目标区域的轮廓的维度上将所述目标区域划分成N个连续的三角面片,即沿着所述目标区域的轮廓将所述目标区域划分成N个连续的三角面片,轮廓上被划分的线段作为所述三角面片的底边。所述将所述目标区域划分成N个连续的三角面片,可以理解为,将人脸图像中的下巴区域划分成N个连续的三角面片。如图5所示,将由中心点与下巴实际轮廓和目标轮廓上的点组成的扇形区域,依次以中心点A为顶点,以目标轮廓上的两个相邻的点的连线为底边,划分为N个连续的三角面片。所述第一子三角面片的底边由所述下巴区域的实际轮廓上的相邻两个点形成;所述第二子三角面片由所述下巴区域的目标轮廓(即希望得到的调整后的下巴轮廓)上的相邻的两个点形成。
步骤S103,分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。
这里,步骤S103可以理解为,采用预设的伸缩变换算法,根据每一所述三角面片中第一子三角面片和第二子三角面片的各个顶点的位置信息对对应的三角面片中的像素点进行伸缩变换,得到处理后的图像。分别对N个三角面片中的每一个面片,采用预设的伸缩变化算法对该三角面片中的像素点进行伸缩变换。采用预设的伸缩变换算法,对三角面片中的像素点进行伸缩变换,可以理解为,采用预设的伸缩变化算法将第一子三角面片中像素点的像素值替换为第二子三角面片中与该像素点对应的第二子三角面片中的像素点的像素值。当对下巴进行拉伸时,第一子三角面片内嵌在第二子三角面片内;当对下巴进行收缩时,第二子三角面片内嵌在第一子三角面片内。比如,下巴区域中的多个三角面片中的其中一个三角面片为ABC,顶角是角A,BC为底边,在三角面片ABC中内嵌第一子三角面片ADE和第二子三角面片AFG;当需要对下巴区域进行拉伸时,根据预设的伸缩变换算法将区域DEFG内的像素点的像素值替换为第一子三角面片ADE内的像素点对应的像素值,就相当于是将底边DE的像素值挪到底边FG处,从而达到拉伸下巴区域的效果。
在本发明实施例提供的图像处理方法中,首先,确定人脸图像中待处理的目标区域;其中,所述待处理的目标区域至少包括人脸图像中的下巴区域;然后,将所述目标区域划分成N个连续的三角面片,其中,N为大于等于2的整数;每一所述三角面片内嵌具有相同顶角的第一子三角面片和具有相同顶角的第二子三角面片;最后,采用预设的伸缩变换算法,根据每一所述三角面片中第一子三角面片和第二子三角面片对对应的三角面片中的像素点进行伸缩变换,得到处理后的图像;如此,通过对人脸图像中的下巴区域划分成N个连续的三角面片,再利用预设的伸缩变换算法对下巴进行调整,从而针对下巴轮廓周围一定范围区域进行整体形变,不仅可以减少对人脸进行形变处理时带来的误差,使得脸部变形的整体效果更稳定,调整后的下巴更加美观。
在实现的过程中,本实施例提供的图像处理方法可以在设备的本地实现,即设备中安装有应用程序,当采集到包含下巴区域的人脸图像时,即对下巴区域进行合理的调整,然后将调整后的图像显示给用户;也可以是在服务器端实现,即设备先获取一张包含下巴区域的图像,然后将该图像传送到服务器,由服务器对该下巴区域进行调整,然后将调整好的人脸图像(即处理后的图像),返回给设备,设备将调整好的人脸图像显示给用户。
当本实施例提供的图像处理方法在设备本地实现时,可以是设备安装客户端的时候,即计算机设备安装了能够进行图像处理的应用程序,这样,参见图1C所示,当用户采用安装有能够采用本实施例提供的图像处理方法进行图像处理的应用程序的设备12进行拍照时,设备12中的应用程序将采集到用户13的人脸图像中的下巴区域进行调整,然后显示给用户的图像是下巴经过调整后的人脸图像。
在其他实施例中,本实施例提供的图像处理方法也可以在服务器端实现,参见图1D所示,这样设备12将已经获取到的包含下巴区域的人脸图像发送给服务器,这样服务器30接收设备12通过网络21发送的人脸图像,这样服务器实现了步骤S101,换句话说,如果上述的方法是在服务器端实现,服务器接收计算机设备发送的人脸图像中待处理的目标区域,即服务器确定人脸图像中待处理的目标区域,然后服务器通过将所述目标区域划分成N个连续的三角面片,最后通过采用预设的伸缩变换算法对所述三角面片中的像素点进行伸缩变换,得到处理后的图像;从以上过程可以看出,上述的过程都在服务器端执行,最后服务器还可以将处理后的图像发送给设备,这样设备接收到处理后的图像后,输出处理后的图像给用户。
在其他实施例中,所述步骤S103,即“分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像”,包括以下步骤:
步骤S131,获取第i个三角子区域中的第j个像素点的位置信息。
这里,所述第j个像素点可以是该三角面片中的任意一个点,所述位置信息至少包括该第j个像素点到其所在的三角面片顶点的距离。
步骤S132,根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数。
这里,中心点即为所有三角面片的顶点;第一点是对第一特征点集按照预设的插值算法进行插值得到的第一点集中的点;所述第二点是按照预设的力度参数对第一点和中心点的连线进行调整得到的;当需要拉伸下巴时,所述预设的力度参数为0到1,而且预设的力度参数值越大,下巴拉伸的越长;当需要收缩下巴时,所述预设的力度参数为负1到0,而且所述预设的力度参数值越小,下巴收缩的越多,即得到的收缩后的下巴越短。所述调整点为将所述中心点和所述第i个第二点的第二连线沿所述填充方向调整所述第二调整距离,得到的。比如,将中心点和第i个第二点的第二连线沿所述填充方向(即伸长或者缩短的方向),延伸第二调整距离,得到第i调整点。
步骤S133,根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置。
这里,将伸缩变换函数的输出值作为比例系数与第六距离相乘,即可得到第j个目标位置与所述中心点之间的距离;所述第六距离为中心点与所述第三交点之间的距离;第三交点是将所述中心点和所述第j个像素点的第四连线沿所述填充方向进行延伸,与三角面片的底边相交得到的。
步骤S134,根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值。
这里,根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值,包括两种情况:
一是,响应于目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值。
二是,响应于目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值;将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。
这里,当所述目标位置的坐标值不是整数时,采用双线性插值算法确定所述目标位置对应的像素值。
将第j个目标位置对应的像素值替换所述第j个像素点的目标像素值,即第j个像素点被第j个目标位置替换,这样当需要拉伸下巴时,由于第j个像素点在第j个目标位置的下面,所以将第j个目标位置的像素值替换第j个像素点的像素值,相当于将第j个像素点往后挪到了第j个目标位置所处的位置;比如,第j个像素点是下巴的目标轮廓到下巴实际轮廓之间的某一点(即第一子三角面片的底边到第二子三角面片的底边之间的某一点),那么第j个像素点对应的像素值就可能是脖子的颜色对应的像素值,第j个目标位置应该在第j个像素点的前面,即第j个目标位置可能是下巴的颜色对应的像素值,用第j个目标位置的像素值替换第j个像素点的像素值,即用下巴的颜色对应的像素值替换下巴下方待延伸区域的脖子的颜色对应的像素值,即可达到将下巴拉伸的效果。
当需要收缩下巴时,第j个像素点在第j个目标位置的上面,所以将第j个目标位置的像素值替换第j个像素点的像素值,相当于将第j个像素点往前挪到了第j个目标位置所处的位置;比如,第j个像素点是下巴的目标轮廓到下巴实际轮廓之间的某一点(即第一子三角面片的底边到第二子三角面片的底边之间的某一点),那么第j个像素点对应的像素值仍然是下巴的颜色对应的像素值,第j个目标位置应该在第j个像素点的后面,即第j个目标位置可能是脖子的颜色对应的像素值,用第j个目标位置的像素值替换第j个像素点的像素值,即用下巴下方的脖子的颜色对应的像素值替换下巴的颜色对应的像素值,即可达到将下巴收缩的效果。
步骤S135,将所述第j个像素点的像素值更新为所述目标像素值,得到对下巴处理后的美化图像。
这里,所述将所述第j个像素点的像素值更新为所述目标像素值,可以理解为,将目标像素值替换第j个像素点的像素值。
在本实施例中,通过将目标位置的像素值替换掉相应的像素点的像素值,如此,实现对原始人脸图像中的下巴区域进行拉伸或者缩短。
本发明实施例提供一种图像处理方法,图2为本发明实施例图像处理方法的又一实现流程图,如图2所示,所述方法包括以下步骤:
步骤S201,根据获取的所述下巴区域的第一特征点集和所述下巴区域的人脸角度信息确定所述下巴区域的填充方向。
这里,所述人脸角度信息可以是人脸图像中人脸左向偏离正面的角度或者右向偏离正面的角度;所述第一特征点集是根据人脸检测算法对该下巴区域进行检测后的特征点,比如,分布在下巴轮廓左右两侧和底部的三个特征点。第一特征点集为采用人脸检测算法检测到的下巴区域的实际轮廓上面的几个特征点。
步骤S202,根据所述填充方向和第一特征点集确定所述下巴区域的中心点。
这里,所述下巴区域的中心点,如图4所示,点A即为中心点。
步骤S203,根据所述中心点、所述第一特征点集和调整参数确定第二特征点集。
这里,将第一特征点集内的第一特征点与中心点连线(该连线的长度即第一距离),然后根据调整参数确定第一调整比例,将第一距离乘以所述第一调整比例,即得到第一调整距离,最后将所述第一特征点沿所述填充方向连接所述第一调整距离得到的端点,确定为相应的第二特征点(即将中心点和第一特征点的第一连线沿着填充方向拉伸或者缩短第一调整距离的长度,所得到的端点),以此类推,得到第一特征点集对应的点集,该点集即为第二特征点集。当需要对下巴区域进行延伸时,所述调整参数为0到1的值,且调整参数的值越大,下巴区域延伸的越长;当需要对下巴区域进行收缩时,所述调整参数为负1到0的值,且调整参数的值越小,下巴区域缩短的越多。
步骤S204,对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集。
这里,预设的插值算法可以是采用多边形拟合方法(Catmull-Rom),根据第一特征点集和第二特征点集分别对下巴区域的实际轮廓和目标轮廓进行插值,得到第一点集和第二点集;即如图4所示,第一特征点集为下巴区域的实际轮廓41上面的点集。所述第二特征点集,为下巴区域的目标轮廓42上面的点集。
步骤S205,根据所述中心点、所述第二点集和预设的比例确定所述目标区域。
这里,预设的比例由需要拉伸或者缩短的长度来确定,比如,需要将下巴区域拉伸时,可以将预设的比例设置为大于1的数。所述将中心点和第二点集内的点连线,乘以预设的比例,对该连线进行调整,得到数量与第二点集内的点数相同的一个点集,连接中心点和该点集最左边的点(即连线51),连接中心点和该点集最右边的点,并且从连线51开始逆时针旋转,将点集中的每个点互相连接,直至连线52,则这两条线之间的区域即为目标区域。如图5所示,连线51与连线52之间的区域即为目标区域。
步骤S206,分别确定所述目标区域的中心点与第二点集的第i个第二点之间的第二距离和所述中心点与第i+1个第二点之间的第三距离。
这里,i=1,2,…,N,(N+1)为第二点的总数;第二点为第二点集中的点。如图6所示,所述中心点与第i个第二点之间的第二距离,可以认为是中心点A与下巴的目标轮廓上的点F之间的连线AF。那么所述中心点与第i+1个第二点之间的第三距离,就是中心点A与下巴目标轮廓上的与点F相邻的点G的连线AG,第二子三角面片AFG的底边即为FG。
步骤S207,根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点。
这里,当需要拉伸下巴区域时,所述预设的第二调整比例可以设置为1.1;所述根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点,包括:根据所述第二距离、所述第三距离和预设的第二调整比例确定第二调整距离和第三调整距离;将所述第i个第二点沿所述填充方向连接所述第二调整距离得到的端点,确定为第i调整点;其中,第i调整点在所述中心点和所述第i个第二点的第二连线上;将所述第i+1个第二点沿所述填充方向连接所述第三调整距离得到的端点,确定为第i+1调整点。如图5所示,将AF沿填充方向延伸第二调整距离,得到点B(即第i调整点);将AG沿填充方向延伸第二调整距离,得到点C(即第i+1调整点)。
步骤S208,将所述中心点、第i调整点和第i+1调整点依次连接构成第i个三角子区域。
步骤S209,获取第i个三角子区域中的第j个像素点的位置信息。
这里,所述第j个像素点的位置信息至少包括所述第j个像素点到中心点的距离,如图6所示,第j个像素点可以是三角面片ABC内的任意一点P。
步骤S210,根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数。
这里,所述伸缩变换函数由中心点和第j个像素点确定,根据得到的输出结果,即可确定第j个目标位置,以实现用第j个目标位置替换第j个像素点的像素值,从而达到拉伸或者缩短下巴的效果。
步骤S211,根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置。
步骤S212,根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值。
步骤S213,将所述第j个像素点的像素值更新为所述目标像素值,得到对下巴处理后的美化图像。
这里,所述将所述第j个像素点的像素值更新为所述目标像素值,可以理解为用第j个目标位置的像素值替换第j个像素点的像素值。
在本实施例中,首先将待处理的下巴区域分割为多个三角面片,然后对每一个三角面片内的各个点的像素值进行替换,以达到拉伸或者缩短下巴的效果。
在其他实施例中,所述步骤S203,即根据所述中心点、所述第一特征点集和调整参数确定第二特征点集,包括以下步骤:
步骤S231,确定所述中心点和所述第一特征点之间的第一距离。
这里,所述第一特征点为第一特征点集中的点,如图6所示,第一距离即为AD。
步骤S232,根据所述调整参数确定第一调整比例。
这里,当需要拉伸下巴时,调整参数为正数,那么第一调整比例为大于0的一个比值。
步骤S233,根据所述第一距离和所述第一调整比例确定第一调整距离。
步骤S234,将所述第一特征点沿所述填充方向连接所述第一调整距离得到的端点,确定为相应的第二特征点。
这里,如图6所示,将AD沿着填充方向调整第一调整距离,得到AF,点F即为第二特征点。
步骤S235,获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。
在其他实施例中,所述步骤S207,即根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点,包括以下步骤:
步骤S271,根据所述第二距离、所述第三距离和预设的第二调整比例确定第二调整距离和第三调整距离。
步骤S272,将所述第i个第二点沿所述填充方向延伸所述第二调整距离得到的端点,确定为第i调整点;其中,第i调整点第一点在所述中心点和所述第i个第二点的第二连线上。
步骤S273,将所述第i+1个第二点沿所述填充方向延伸所述第三调整距离得到的端点,确定为第i+1调整点。
在其他实施例中,所述步骤S210,根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数,包括以下两个步骤:
步骤A1,将所述中心点和所述第j个像素点的第四连线沿所述填充方向进行延伸,与第i个第一点、第i+1个第一点的连线相交于第一交点、与第i个第二点、所述第i+1个第二点的连线相交与第二交点、与三角面子区域的底边相交于第三交点,其中,所述三角面子区域的底边为所述第i调整点与所述第i+1调整点的连线。
这里,如图6所示,第一子三角面片为ADE,第二子三角面片为AFG,第一交点为点I,第二交点为点J,第三交点为点K。当拉伸下巴区域时,第一子三角面片为ADE在第二子三角面片为AFG内部,即下巴的目标轮廓在下巴实际轮廓的上方,这样将下巴的实际轮廓拉伸到目标轮廓处,就到达了拉伸下巴的效果;当收缩下巴区域时,第一子三角面片为ADE在第二子三角面片为AFG外部,即下巴的目标轮廓在下巴实际轮廓的下方,这样将下巴的实际轮廓收缩到目标轮廓处,就到达了收缩下巴的效果。
步骤A2,根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,所述第四距离为所述中心点与所述第一交点之间的距离,所述第五距离为所述中心点与所述第二交点之间的距离,所述第六距离为所述中心点与所述第三交点之间的距离。
所述步骤A2,根据第四距离、第五距离和第六距离确定伸缩变换函数,可以通过以下步骤实现:
步骤A21,确定所述第四距离与所述第六距离之间的第一比值、所述第五距离与所述第六距离之间的第二比值;
步骤A22,根据所述第一比值和所述第二比值确定第一坐标;
步骤A23,将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数;
步骤A24,将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;
步骤A25,根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。
在本实施例中,这里,如图6所示,在三角面片ABC中,第四距离、第五距离和第六距离分别为AI、AJ和AK。所述伸缩变换函数为分段函数,第一分段函数经过点(0,0)和因此伸缩变换函数的第一分段函数为:其中,x为输入的所述中心点与三角面片中第j个像素点之间的距离与AK的比值(即第第七距离与所述第六距离的比值),根据得到的输出,即可确定第j个目标位置与所述中心点之间的距离,即第八距离。如图6所示,当第j个像素点是点P时,如果AP小于等于AJ,就将AP与AK(即第六距离)的比值,输入到第一分段函数中,因此点P对应的第j个目标位置即为点P`(如果是拉伸下巴区域点P`,在点P的前面;如果是收缩下巴区域,点P`在点P的后面),将点P`的像素值替换点P的像素值。从而达到拉伸或者收缩下巴的效果。第二分段函数经过点和点(1,1),那么第二分段函数为:当AJ>AI时,第一分段函数和第二分段函数的曲线图如图7A所示,即第一分段函数为曲线71,第二分段函数为曲线72;当AJ<AI时,第一分段函数和第二分段函数的曲线图如图7B所示,即第一分段函数为曲线73,第二分段函数为曲线74。
在其他实施例中,步骤A2,所述根据第四距离、第五距离和第六距离确定伸缩变换函数,还可以通过以下步骤实现:
步骤A26,确定所述第四距离和所述第五距离,以确定第一坐标。
步骤A27,将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数。
步骤A28,根据第六距离确定预设的第二坐标。
步骤A29,将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数。
步骤A30,根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。
在其他实施例中,所述步骤S211,根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置,包括以下步骤:
步骤B1,根据所述第j个像素点的位置信息确定所述第j个像素点与所述中心点之间的第七距离。
步骤B2,确定所述第七距离与所述第六距离之间的第三比值。
步骤B3,将所述第三比值作为所述伸缩变换函数的输入,得到输出值。
步骤B4,根据所述输出值和所述第六距离确定第八距离,其中,所述第八距离为第j个目标位置与所述中心点之间的距离。
步骤B5,根据所述第八距离和所述中心点确定所述第j个目标位置。
在其他实施例中,所述步骤S213,将所述第j个像素点的像素值更新为所述目标像素值,得到处理后的图像,包括以下步骤:
步骤C1,响应于所述目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值。
步骤C2,响应于所述目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值;
步骤C3,将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。
在本实施例中,在人脸检测模型标定的少量特征点的基础上利用Catmull-Rom多边形拟合方法来进一步用多边形拟合下巴轮廓。相机美颜对检测模型的精度和执行效率有着极高的要求,利用拟合多边形方法可以有效缓解检测模型的性能压力。同时,本实施例提供的伸缩变换函数具有线性复杂度,效率更快,可以适应相机实时预览功能对美颜算法高效率的需求。另外,本实施例利用三角面片拟合复杂的,各式各样的立体下巴。三角面片拟合可以起到化整为零,简化变形过程以及快速建立3D数学模型的作用,可以灵活应对不同角度,大小和形状的下巴。同时本实施例提供的图像处理方法可以自由推拉下巴,变形自由度更高,适应范围更广。
本发明实施例提供一种图像处理方法,采用本实施例提供的方法调整人脸图像中的下巴时,在调整过程中,所述方法具有一定容错性,可以针对下巴轮廓周围一定范围区域进行整体形变,可以减缓特征点误差带来的负面影响,整体效果更稳定。
本实施例提供的图像处理方法可对人脸照片进行三维(3-Dimensional,3D)“下巴塑性”美颜,可以通过以下三个步骤实现:
第一步,利用人脸检测模型标定下巴特征点,并使用Catmull-Rom多边形拟合方法拟合下巴轮廓。之后,按照顺时针方向使用连续的三角面片分割立体的下巴。最后,针对每一个三角面片使用伸缩变换公式进行伸缩变换,达到3D“下巴塑性”效果。
第二步,以三角面片拟合任意多边形,化整为零,再对每一个三角面片单独采用伸缩变换公式,简化了实现方式并大大提升了算法效率。
第三步,利用伸缩变换公式快速灵活的对三角面片进行变形。
这里,所述伸缩变换公式也可以应用在其他基于控制点的图片变形领域。
采用本实施例中所述的伸缩变换公式对人脸图像进行处理时,既可以做出拉长下巴效果,也可以做出收缩下巴的效果,灵活便捷。
图3为本发明实施例图像处理方法的另一实现流程图,如图3所示,所述方法包括以下步骤:
步骤S301,获取输入的人脸图像中待处理的目标区域和调整参数。
这里,如果需要对下巴区域进行拉伸,那么调整参数为整数,对应的第一调整比例为0到1的数;如果需要对下巴区域进行收缩,那么调整参数为负数,对应的第一调整比例为负1到0的数。
步骤S302,采用人脸检测模型对目标区域进行检测,输出目标区域下巴实际轮廓上的下巴特征点和人脸角度信息。
这里,所述下巴特征点即为第一特征点集中的点。将第一特征点沿所述填充方向连接所述第一调整距离得到的端点,确定为相应的第二特征点,根据第一特征点集得到第二特征点集的过程包括三个步骤:
第一步,利用人脸角度信息和下巴特征点确定“下巴塑性”的核心缩放方向(即确定填充方向),进而确定“下巴塑性”的一个缩放中心(即中心点);
第二步,依次连接“下巴塑性”缩放中心和下巴特征点并调整,根据调整参数按照第一调整比例调整线上的点来确定下巴区域的目标轮廓上的第二特征点的位置;
第三步使用Catmull-Rom多边形拟合方法、第一特征点集和第二特征点集插值更多的下巴轮廓(包括实际下巴轮廓和目标下巴轮廓)上的点,连接这些点构成下巴实际轮廓的拟合折线段(由第一点集组成)和下巴目标轮廓的拟合折线段(由第二点集组成)。
步骤S303,利用Catmull-Rom多边形拟合算法和输入的第一特征点集和第二特征点集拟合下巴轮廓。
这里,拟合下巴轮廓后得到由第一点集组成的下巴实际轮廓的拟合折线段,和由第二点集组成的下巴目标轮廓的拟合折线段。
步骤S304,通过调整参数和下巴实际轮廓确定下巴目标轮廓,利用第一特征点集和第二特征点集确定中心点。
这里,利用人脸检测算法检测到的人脸角度信息的属性修正各个角度的目标轮廓。
步骤S305,根据下巴实际轮廓、下巴目标轮廓和中心点,使用连续的三角面片拟合立体下巴。
这里,通过输入下巴和目标下巴轮廓的拟合折线段以及“下巴塑性”的缩放中心,把下巴区域拆分为多个连续的三角面片,如图5所示,然后依次连接中心点和下巴目标轮廓上的点(即第二点集),即可得到三角面片的侧边,再依次连接目标轮廓上的点即可得到多个连续的三角面片的底边。
步骤S306,对于每一个三角面片,使用伸缩变换函数和双线性插值对三角面片内的像素点做伸缩变换。
这里,控制三角面片的伸缩变换一共需要七个点,其中三个点A、B、C是三角面片的三个顶点,另外四个点D、E和F、G分别是原始下巴轮廓和目标下巴轮廓对应的折线上的点,如图6所示,区域ADE即为第一子三角面片,区域AFG即为第二子三交面片。
步骤S307,判断是否对所有三角面片内的像素点都采用伸缩变换函数进行变换。
这里,如果是,则进入步骤S308;如果不是,则返回步骤S306。
步骤S308,输出对下巴区域处理之后的效果图。
这里,如图9(a)为原始图像,图9(b)为下巴区域拉伸之后的图像;图11(a)为原始图像,图11(b)为下巴区域收缩之后的图像。从图9和图11可以看出,无论是需要对下巴区域进行收缩还是延伸,采用本实施例提供的图像处理方法都能够得到有效的且明显的处理结果,而且处理后的下巴更符合大众审美。
对于输入三角面片内任意点P进行伸缩变换,根据伸缩变换函数得到点P的映射P`,使得输出三角面片对应位置的点P取点P`位置处的像素值,从而完成点P`到点P的位移变换。当P`的坐标为非整数的情况时,可以使用双线性插值算法取到对应的像素值。在三角面片ABC中,对于三角面片内的每一个像素点P,连接点P并调整与DE、FG和BC分别相交于I、J和K。分别求出AP,AI、AJ和AK的长度(即第四距离、第五距离和第六距离)。所述伸缩变换函数为分段函数,第一分段函数经过点(0,0)和因此伸缩变换函数的第一分段函数为:(当拉伸下巴区域时(采用AJ>AI对应的函数曲线,即图7A所示的函数曲线),如图7A所示,线段71即为第一分段函数;当缩短下巴区域时(采用AJ<AI对应的函数曲线,即图7B所示的函数曲线),如图7B所示,线段73即为第一分段函数),其中,x为输入的所述中心点与三角面片中第j个像素点之间的距离与AK的比值(即第七距离与所述第六距离的比值),根据得到的输出,即可确定第j个目标位置与所述中心点之间的距离,即第八距离。如图6所示,当第j个像素点是点P时,如果AP小于等于AJ,就将AP与AK(即第六距离)的比值,输入到第一分段函数中,因此点P对应的第j个目标位置即为点P`(如果是拉伸下巴区域点P`,在点P的前面;如果是收缩下巴区域,点P`在点P的后面),将点P`的像素值替换点P的像素值。从而达到拉伸或者收缩下巴的效果。第二分段函数经过点和点(1,1),那么第二分段函数为:(当拉伸下巴区域时,如图7A所示,线段72即为第二分段函数;当缩短下巴区域时,如图7B所示,线段74即为第二分段函数)。如此,对于三角面片内任意点P,都取对应的点P`位置的像素值,从而完成伸缩变换。如图8(a)所示,当对下巴区域进行拉伸时,点P通过伸缩变换函数得到的映射点P`,在点P的前面,比如,点P为点J时,将AJ输入函数(如图7A所示的函数曲线),那么点P`为点I,将点I的像素值替换点J的像素值,得到的结果如图8(b)所示,就是阴影区域的像素值替换了区域EDFG的空白区域的像素值。
如图10(a)所示,当对下巴区域进行收缩时,点P通过伸缩变换函数得到的映射点P`,在点P的后面,比如,点P为点J时,将AJ输入函数那么点P`为点I,将点I的像素值替换点J的像素值,得到的结果如图10(b)所示,就是空白区域的像素值替换了区域EDFG的阴影区域的像素值。图11(a)为原始图像,图11(b)为下巴区域收缩之后的图像,对比这两个图可以看出,下巴收缩效果明显,而且拉伸的曲线很圆滑。那么当用户下巴区域不够美观时,即可按照用户下巴轮廓的实际情况进行调整,得到更符合大众审美的,让人赏心悦目的图像。
本实施例提供的图像处理方法综合利用三角面片拟合和采用伸缩变换函数进行3D变形来完成相机“下巴塑性”功能,以达到立体美颜的效果。立体饱满的五官符合东方人的审美,3D变形可以重塑下巴,效果更加自然。
本发明实施例提供一种图像处理的装置,图12为本发明实施例生图像处理的装置的组成结构示意图,如图12所示,所述图像处理的装置1200包括:第一确定模块1201、划分模块1202和伸缩变换模块1203,其中:
所述第一确定模块1201,用于确定人脸图像中待处理的目标区域;
所述划分模块1202,用于将所述目标区域划分成N个子区域,N为大于等于2的整数;
所述伸缩变换模块1203,用于分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。
在本发明实施例中,所述第一确定模块1201,包括:
第一确定单元,用于根据获取的所述下巴区域的第一特征点集和所述下巴区域的人脸角度信息确定所述下巴区域的填充方向;
第二确定单元,用于根据所述填充方向和第一特征点集确定所述下巴区域的中心点;
第三确定单元,用于根据所述中心点、所述第一特征点集和调整参数确定第二特征点集;
插值单元,用于对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集;
第四确定单元,用于根据所述中心点、所述第二点集和预设的比例确定所述目标区域。
在本发明实施例中,所述第三确定单元,包括:
第一确定子单元,用于确定所述中心点和所述第一特征点之间的第一距离;
第二确定子单元,用于根据所述调整参数确定第一调整比例;
第二特征点集确定子单元,用于根据所述第一距离和所述第一调整比例确定第一调整距离;
第一调整单元,用于将所述第一特征点沿所述填充方向延伸所述第一调整距离得到的端点,确定为所述第一特征点相应的第二特征点;
第二特征点集确定子单元,用于获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。
在本发明实施例中,所述划分模块,包括:
第五确定单元,用于分别确定所述目标区域的中心点与所述第二点集的第i个第二点之间的第二距离和所述中心点与第i+1个第二点之间的第三距离,其中,i=1,2,…,N;
第六确定单元,用于根据所述第二距离、所述第三距离和预设的第二调整比例确定第i调整点和第i+1调整点;
连接单元,用于将所述中心点、第i调整点和第i+1调整点依次连接构成第i个三角子区域。
在本发明实施例中,所述第六确定单元,包括:
第四确定子单元,用于根据所述第二距离、所述第三距离和预设的第二调整比例确定第二调整距离和第三调整距离;
第二调整单元,用于将所述第i个第二点沿所述填充方向延伸所述第二调整距离得到的端点,确定为第i调整点;其中,第i调整点在所述中心点和所述第i个第二点的第二连线上;
第三调整单元,用于将所述第i+1个第二点沿所述填充方向延伸所述第三调整距离得到的端点,确定为第i+1调整点。
在本发明实施例中,所述伸缩变换模块,包括:
第一获取单元,用于获取第i个三角子区域中的第j个像素点的位置信息;
第七确定单元,用于根据所述第j个像素点的位置信息、中心点、第i个第一点、第i+1个第一点、第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数;
第八确定单元,用于根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置;
第九确定单元,用于根据所述第j个目标位置对应的像素值确定所述第j个像素点的目标像素值;
更新单元,用于将所述第j个像素点的像素值更新为所述目标像素值,得到对下巴处理后的美化图像。
在本发明实施例中,所述第七确定单元,包括:
第一延伸子单元,用于将所述中心点和所述第j个像素点的第四连线沿所述填充方向进行延伸,与第i个第一点、第i+1个第一点的连线相交于第一交点、与所述第i个第二点、所述第i+1个第二点的连线相交与第二交点、与三角面子区域的底边相交于第三交点,其中,所述三角子区域的底边为所述第i调整点与所述第i+1调整点的连线;
伸缩子单元,用于根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,所述第四距离为所述中心点与所述第一交点之间的距离,所述第五距离为所述中心点与所述第二交点之间的距离,所述第六距离为所述中心点与所述第三交点之间的距离。
在本发明实施例中,所述伸缩子单元,还用于确定所述第四距离与所述第六距离之间的第一比值、所述第五距离与所述第六距离之间的第二比值;根据所述第一比值和所述第二比值确定第一坐标;将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数;将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。
在本发明实施例中,所述第八确定单元,包括:
第五确定子单元,用于根据所述第j个像素点的位置信息确定所述第j个像素点与所述中心点之间的第七距离;
第六确定子单元,用于确定所述第七距离与所述第六距离之间的第三比值;
输出子单元,用于将所述第三比值作为所述伸缩变换函数的输入,得到输出值;
第七确定子单元,用于根据所述输出值和所述第六距离确定第八距离,其中,所述第八距离为第j个目标位置与所述中心点之间的距离;
第八确定子单元,用于根据所述第八距离和所述中心点确定所述第j个目标位置。
在本发明实施例中,所述第九确定单元,包括:
第九确定子单元,用于响应于所述目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值;
第十确定子单元,用于响应于所述目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值;
第十一确定子单元,用于将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的即时通讯方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台即时通讯设备(可以是终端、服务器等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应地,本发明实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现本发明实施例提供的图像处理方法中的步骤。
相应地,本发明实施例再提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,所述该计算机可执行指令被处理器执行时实现上述实施例提供的图像处理方法的步骤。
相应地,本发明实施例提供一种计算机设备,图13为本发明实施例计算机设备的组成结构示意图,如图13所示,该计算机设备1300的硬件实体包括:处理器1301、通信接口1302和存储器1303,其中
处理器1301通常控制计算机设备1300的总体操作。
通信接口1302可以使计算机设备通过网络与其他终端或服务器通信。
存储器1303配置为存储由处理器1301可执行的指令和应用,还可以缓存待处理器1301以及计算机设备1300中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
以上即时计算机设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明即时通讯设备和存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。