一种头发纹理方向的处理方法、装置及系统与流程

文档序号:11433437阅读:352来源:国知局
一种头发纹理方向的处理方法、装置及系统与流程

本发明属于图像处理技术领域,尤其涉及一种头发纹理方向的处理方法、装置及系统。



背景技术:

随着图像处理和计算机视觉技术的发展,智能图像编辑成为了一个越来越受关注的问题。智能的图像编辑通常会对图像的不同区域,根据其语义不同,而采用不同的处理。比如,如果能准确的知道图像中那些像素是头发的影像,就可以在不改变其他区域颜色的情况下改变头发颜色、检测纹理方向,等等。

由于头发的纹理方向性容易受光照和图片拍摄质量影响,会出现非常模糊甚至完全无方向特征的现象,因此在图像编辑过程中,容易导致检测到的头发纹理方向非常不准确,甚至是无法分辨其纹理方向。



技术实现要素:

本发明的目的在于提供一种头发纹理方向的处理方法、装置及系统,旨在提高检测到的头发纹理方向的准确性。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明提供一种头发纹理方向的处理方法,其中包括:

获取待处理图片,并确定所述待处理图片中的头发区域;

利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;

当根据所述滤波器响应值判断出相应像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,所述方向值为每个像素所在的局部区域的纹理方向的角度值;

根据所述待定像素周围的像素的方向值,计算所述待定像素的方向值,以确定头发区域的纹理方向。

第二方面,本发明提供一种头发纹理方向的处理装置,其中包括:

区域确定模块,用于获取待处理图片,并确定所述待处理图片中的头发区域;

滤波模块,用于利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;

待定像素确定模块,用于当根据所述滤波器响应值判断出相应像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,所述方向值为每个像素所在的局部区域的纹理方向的角度值;

第一计算模块,用于根据所述待定像素周围的像素的方向值,计算所述待定像素的方向值;

方向确定模块,用于确定头发区域的纹理方向。

第三方面,本发明提供一种头发纹理方向的处理系统,其中包括如第二方面提供的头发纹理方向的处理装置。

本发明实施例,在确定出待处理图片中的头发区域后,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;根据滤波器响应值评判像素的方向值是否为可确定时,其中方向值为每个像素所在的局部区域的纹理方向的角度值;如果方向值不可确定,则可以根据其周围的已知像素的方向值计算待定像素的方向值,从而可以确定整个头发区域的纹理方向,即使用已知方向值的区域对方向值待定的区域进行扩散来得到全部的方向值,避免了无法分辨头发纹理方向的问题,也大大提高了方向值检测的准确性。

附图说明

下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。

图1a为本发明实施例提供的头发纹理方向的处理系统的场景示意图;

图1b为本发明实施例提供的头发纹理方向的处理方法的流程示意图;

图2a为本发明实施例提供的头发纹理方向的处理方法的另一流程示意图;

图2b为本发明实施例中头发区域的分割结果示意图;

图2c为本发明实施例中待处理图片的裁剪示意图;

图2d为本发明实施例中灰度化处理后的图片的示意图;

图2e为本发明实施例中几种角度的滤波器的方向示意图;

图2f为本发明实施例中方向值为可确定的像素的方向响应曲线;

图2g为本发明实施例中方向值为不可确定的像素的方向响应曲线;

图2h为本发明实施例中的一种头发纹理的方向图示意;

图2i为本发明实施例中计算待定像素的方向值的示意图;

图2j为本发明实施例中的另一头发纹理的方向图示意;

图2k为本发明实施例中头发方向进行中值滤波后的效果图;

图2l为本发明实施例中头发方向进行高斯滤波后的效果图;

图3a为本发明实施例提供的头发纹理方向的处理装置的结构示意图;

图3b为本发明实施例提供的头发纹理方向的处理装置的另一结构示意图;

图3c为本发明实施例提供的头发纹理方向的处理装置的另一结构示意图;

图4为本发明实施例提供的服务器的结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。

本发明实施例提供一种头发纹理方向的处理方法、装置及系统。

参见图1a,该图为本发明实施例所提供的头发纹理方向的处理系统的场景示意图,该头发纹理方向的处理系统可以包括头发纹理方向的处理装置,具体可集成在服务器等设备中,主要用于获取待处理图片,并确定该待处理图片中的头发区域,如可通过图像识别或者通过用户手动选择确定出头发区域,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;然后,根据滤波器响应值判断出相应像素的方向值是否为可确定,其中,该方向值为每个像素所在的局部区域的纹理方向的角度值,如果像素的方向值为不可确定时,将该方向值为不可确定的像素作为待定像素,并利用该待定像素周围的像素的方向值,计算该待定像素的方向值,从而可结合计算后的待定像素的方向值以及可确定方向值的像素的方向值,确定整个头发区域的纹理方向。

此外,该头发纹理方向的处理系统还可以包括用户终端,主要用于向头发纹理方向的处理装置输入待处理图片,也可以用于接收用户在该待处理图片上选择头发区域的选择操作,以及用于可以向用户展示各阶段处理后的图片效果图,如滤波处理后的图片、像素方向值是否为可确定的示意、整个头发区域的纹理方向示意,等等。

当然,该头发纹理方向的处理系统还可以包括存储器,比如,可用于存储用于判断相应像素的方向值是否为可确定的公式(即不确定性计算公式)、用于计算待定像素的方向值的公式,等等,并基于头发纹理方向的处理装置的调用指令向头发纹理方向的处理装置进行发送。

以下将分别进行详细说明。

在本实施例中,将从头发纹理方向的处理装置的角度进行描述,该头发纹理方向的处理装置具体可以集成在服务器等设备中。

一种头发纹理方向的处理方法,包括:获取待处理图片,并确定待处理图片中的头发区域;利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;当根据滤波器响应值判断出相应像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,该方向值为每个像素所在的局部区域的纹理方向的角度值;根据待定像素周围的像素的方向值,计算待定像素的方向值,以确定头发区域的纹理方向。

请参阅图1b,图1b是本发明第一实施例提供的头发纹理方向的处理方法的流程示意图。该方法包括:

在步骤s101中,获取待处理图片,并确定待处理图片中的头发区域。

比如,可以从存储器中获取待处理图片,也可以根据用户通过终端输入来获取待处理图片,或者还可以通过其他设备发送来获取待处理图片,等等;其中,该待处理图片可具体为包含头发区域的人像图片。

其中,获取到待处理图片后,“确定待处理图片中的头发区域”的方式有很多,比如可以具体如下:

根据预设的图像分割算法或者根据用户的选择操作,确定待处理图片中的头发区域。

可以理解的是,确定头发区域是为了去除待处理图片的背景部分,使得服务器只处理头发区域,从而减少处理的数据量。其中,确定待处理图片中的头发区域的方式有很多,如可以通过图像分割(graphcut)、深度神经网络等自动分割的方式,或者可以通过用户手动涂抹选择得到,等等,从而确定出头发区域,此处不作具体限定。

在步骤s102中,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值。

其中,在对头发区域进行滤波处理之前,还可以先对获取到的头发区域进行预处理,比如,服务器在“利用线性滤波器对头发区域进行滤波处理”之前,还可以包括:

(1)根据确定的头发区域,对待处理图片进行裁剪,生成裁剪后的图片。

比如,根据确定出来的头发区域,从整张待处理图片中将头发区域裁剪出来,从而缩小待处理图片的大小,提高处理速度。

(2)按照预设的图片宽度值,对裁剪后的图片进行归一化处理,得到归一化处理后的图片。

由于裁剪后的图片大小不一,不利于算法设计,因此可以按照预设的图片宽度值,对裁剪后的图片进行归一化处理,从而后续图片处理更为方便。

(3)对归一化处理后的图片进行灰度化处理,得到灰度化处理后的图片。

比如,如果需要进一步减少需要处理的数据量还可以对归一化处理后的图片进行灰度化处理,并且灰度化处理后的图片可以完整反映纹理信息。

需要说明的是,对获取到的头发区域预处理包括但不限于裁剪、归一化处理以及灰度化处理中的一种或多种组合处理,并且,也可以进行灰度化处理再进行裁剪和归一化处理等等,此处举例对预处理类型及执行次序不构成限定。

基于对头发区域进行预处理的步骤后,服务器在“利用线性滤波器对头发区域进行滤波处理”时可以具体为:利用线性滤波器对灰度化处理后的图片中的头发区域进行滤波处理。

本发明实施例中,线性滤波器是指滤波器输出量是其输入量的线性函数的滤波器,图像中的线性滤波器是用于与图像进行卷积运算的一个较小的数值矩阵,通过卷积处理可以实现很多图像处理效果,比如图像模糊,获取图像边缘,图像增强处理等。

其中,线性滤波器可具体为gabor滤波器,gabor滤波器是一个用于边缘检测的线性滤波器。gabor滤波器的频率和方向表示接近人类视觉系统对于频率和方向的表示,常用于纹理表示和描述,因此gabor滤波器也可称为方向滤波器。在空域,由于一个二维的gabor滤波器是一个正弦平面波和高斯核函数的乘积,具有在空间域和频率域同时取得最优局部化的特性,与人类生物视觉特性很相似,因此能够很好地描述对应于空间频率、空间位置及方向选择性的局部结构信息。

由此,本发明实施例中可具体使用gabor滤波器对头发区域进行滤波处理,从而可以得到表征头发纹理方向的方向值,其中,服务器“利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值”可以具体如下:

(1)按照预设的间隔角度,设置多个线性滤波器。

(2)利用设置的多个线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的多个滤波器响应值。

也就是说,对于头发区域的每一像素,每间隔一预设的间隔角度就创建一个线性滤波器,比如,如果定义头发方向的角度取0~180度的范围,预设的间隔角度为x,则每一像素就需要创建(180/x)个线性滤波器,从而每一像素可以对应得到(180/x)个滤波器响应值。

其中,该预设的间隔角度可以按照具体场景来设定,若对处理速度有要求的场合,预设的间隔角度可以设定大一些,若对计算精确性有要求的场合,预设的间隔角度可以设定小一些,此处不作具体限定。

在步骤s103中,当根据滤波器响应值判断出相应像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,该方向值为每个像素所在的局部区域的纹理方向的角度值。

可以理解的是,本发明实施例中像素的方向值是指每个像素所在的局部区域的纹理方向的角度值,比如一个像素头发方向都是垂直往下的,那么这个像素的方向值就是90度。

在某些实施方式中,“利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值”之后需要评价像素的方向值的不确定性,例如,还可以包括如下步骤:

(1)根据滤波器响应值,判断相应像素的方向值是否为可确定。

其中,服务器“根据滤波器响应值,判断相应像素的方向值是否为可确定”的实现方式有很多,比如,在某些实施方式中,可具体如下:

a1、从多个滤波器响应值中获取最大的滤波器响应值以及最小的滤波器响应值。

如,每一像素创建(180/x)个线性滤波器,每一像素可以对应得到(180/x)个滤波器响应值v,并从这(180/x)个滤波器响应值中选取最大的滤波器响应值vmax和最小的滤波器响应值vmin。

b1、根据最大的滤波器响应值以及最小的滤波器响应值判断相应像素的方向值是否为可确定。

进一步的,根据最大的滤波器响应值以及最小的滤波器响应值判断相应像素的方向值是否为可确定可以具体包括:

b1-1、计算最大的滤波器响应值以及最小的滤波器响应值的差值,并计算该差值与最大的滤波器响应值的比值。

b1-2、若比值大于第一预设阈值,则判断出相应像素的方向值为可确定。

b1-3、若比值小于第一预设阈值,则判断出相应像素的方向值为不可确定。

可以理解的是,计算出来的差值与最大的滤波器响应值的比值可认为是像素方向的不确定性计算结果。

其中,该第一预设阈值的设定和不确定性计算的公式相关,同时需要根据实际实验结果来选取。比如可以选择平均值作为第一预设阈值,即所有像素方向不确定性计算结果的平均值。

又比如,在某些实施方式中,“根据滤波器响应值,判断相应像素的方向值是否为可确定”可具体如下:

a2、计算多个滤波器响应值的标准方差。

b2、若标准方差大于第二预设阈值,则判断出相应像素的方向值为可确定。

c2、若标准方差小于第二预设阈值,则判断出相应像素的方向值为不可确定。

即该实施方式中,使用标准方差来表示不确定性,方差是反映一组统计数据偏离平均值的程度。

其中,该第二预设阈值的设定也和不确定性计算的公式相关,同时需要根据实际实验结果来选取。比如也可以选择平均值作为第二预设阈值,即所有像素方向不确定性计算结果的平均值。

需说明的是,第一预设阈值和第二预设阈值可以设定为一样,也可以设定为不一样,此处不作具体限定。

(2)在判断出相应像素的方向值为可确定时,从多个滤波器响应值中获取最大的滤波器响应值。

(3)将最大的滤波器响应值对应的方向确定为该像素的方向值。

在一种实施方式中,判断出像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,执行步骤s104;在另一种实施方式中,判断出像素的方向值为可确定时,从得到的多个滤波器响应值中获取最大的滤波器响应值,并将该最大的滤波器响应值对应的方向确定为该像素的方向值,这样方向值可确定的像素就可认为是已知像素。

在步骤s104中,根据待定像素周围的像素的方向值,计算待定像素的方向值,以确定头发区域的纹理方向。

在确定出待定像素后,可根据待定像素周围的像素中可知像素的方向值,计算待定像素的方向值,从而确定出整个头发区域的纹理方向。

其中,“根据待定像素周围的像素的方向值,计算待定像素的方向值”的方式有很多,如可具体如下:

(1)根据预设的像素扩散范围确定待定区域。

比如,以预设的像素扩散范围为限定,先确定出待定区域,其中,该待定区域包含待定像素以及其周围的已知方向值的像素,从而可以以一个待定区域为单位,根据其中已知方向值的像素计算待定像素的方向值。

需说明的是,预设的像素扩散范围可以设定为四宫格,也可以设定为以待定像素为基准的九宫格,或者是更大的扩散范围,此处不作具体限定。

(2)根据待定区域中已知方向值的像素的方向值,计算待定像素的方向值。

比如,可具体如下:

a、在待定区域中,确定已知方向值的像素的个数最多的目标区域。

首先,在确定的多个待定区域中,找出包含已知方向值的像素的个数最多的待定区域,并将该待定区域作为当前需要计算的目标区域;其中该目标区域可以为一个,也可以为多个。

b、从目标区域开始扩散,根据目标区域中已知方向值的像素的方向值,计算目标区域中待定像素的方向值,将计算后的待定像素确定为已知方向值的像素。

然后,从目标区域开始扩散并计算,对于每一目标区域,根据其中已知方向值的像素的方向值来计算待定像素的方向值,并且,计算后的待定像素就可认为是已知方向值的像素,即已知像素,可对其周围的待定像素的方向值进行计算。

c、返回根据像素扩散范围确定待定区域,并从待定区域中确定目标区域及计算待定像素的方向值的步骤,直至所有待定像素的方向值计算完毕。

接着,返回根据预设的像素扩散范围确定待定区域的步骤,即每进行一次目标区域的待定像素的计算,就重新确定待定区域,并再次在这些待定区域中重新确定出当前需要计算的目标区域,并根据其中已知方向值的像素的方向值来计算待定像素的方向值,如此循环,直至所有待定像素的方向值计算完毕。

需说明的是,计算待定像素的方向值的方式有很多,比如可以直接计算平均值,或者使用加权平均值等,或者使用解偏微分方程的方法,等等,此处不作具体限定。

可以理解的是,在待定像素的方向值计算完毕后,“确定头发区域的纹理方向”可具体包括如下步骤:

(1)根据计算后的各像素的方向值,确定初始纹理方向。

(2)对初始纹理方向进行平滑处理,得到最终纹理方向,并确定为头发区域的纹理方向。

由于根据各像素的方向值确定出初始纹理方向,可能会存在局部方向凌乱,从而导致生成的方向图不平滑流畅,因此,可以对该初始纹理方向进行平滑处理,如使用中值滤波和/或高斯滤波,等等,得到最终纹理方向,即头发区域的纹理方向,生成最终的头发区域的方向图。

本发明实施例中,方向图是由一个图片中所有像素(头发区域的像素)的方向值所组成的,和图像宽高相同的二维数值矩阵就是一个方向图,其中每一个像素的值就是该像素在原图片中的方向值。

由上述可知,本实施例提供的头发纹理方向的处理方法,在确定出待处理图片中的头发区域后,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;根据滤波器响应值评判像素的方向值是否为可确定时,其中方向值为每个像素所在的局部区域的纹理方向的角度值;如果方向值不可确定,则可以根据其周围的已知像素的方向值计算待定像素的方向值,从而可以确定整个头发区域的纹理方向,即使用已知方向值的区域对方向值待定的区域进行扩散来得到全部的方向值,避免了无法分辨头发纹理方向的问题,也大大提高了方向值检测的准确性。

根据上述实施例所描述的方法,以下将举例作进一步详细说明。

首先,由于头发的纹理方向性受光照和图片拍摄质量影响,会出现非常模糊甚至完全无方向特征的现象,从而导致检测到的方向是非常不准确;并且,由于头发的纹理方向局部比较凌乱,而有些应用场合需要的是整体平滑流畅的方向,可大部分的手绘风格的图像处理效果,能平滑掉这种局部的方向扰乱,但是检测到方向准确性又不高。

基于此,本发明实施例提供一种头发纹理方向的处理方法,既可以提高检测到的头发方向的准确性,又可以解决局部方向凌乱导致整体不平滑流畅的问题。请参阅图2a,图2a为本发明实施例提供的头发纹理方向的处理方法的另一流程示意图。该方法包括:

(一)确定头发区域→(二)对待处理图片进行预处理→(三)对预处理后的图片进行线性滤波→(四)根据线性滤波结果进行不确定性计算→(五)使用已知方向值的像素对待定像素进行扩散来得到全部像素的方向值→(六)对头发纹理的方向图进行平滑处理;以下将进行详细说明。

(一)确定头发区域:

s201、服务器获取待处理图片,并确定待处理图片中的头发区域。

可以理解的是,要对头发方向进行检测,首先是要对头发区域分割,为了去掉待处理图片背景部分而只处理头发区域,从而减少处理的数据量。

其中,该待处理图片可具体为包含头发区域的人像图片,如人物头像图片,可为单人头像或多人头像;确定待处理图片中的头发区域的方式有很多,如可以通过图像分割(graphcut)、深度神经网络等自动分割的方式,或者可以通过用户手动涂抹选择得到,等等,此处对其具体确定过程不作赘述。

可一并参考图2b,为头发区域的分割结果示意,其中图2b中(a)表示获取到的待处理图片,图2b中(b)表示头发区域的分割示意,b1代表头发区域部分,b2代表背景部分。

(二)对待处理图片进行预处理:

s202、服务器根据确定的头发区域,对待处理图片进行裁剪,生成裁剪后的图片。

比如,服务器根据确定出来的头发区域,从整张待处理图片中将头发区域裁剪出来进行单独处理,从而可以减少图片大小来提高处理速度;可参考图2c,为待处理图片的裁剪示意图,其中图2c中(a)表示裁剪范围的选取,图2c中(b)为裁剪后得到的图片,这样需要处理的图片就变小了。

s203、服务器按照预设的图片宽度值,对裁剪后的图片进行归一化处理,得到归一化处理后的图片。

进一步的,可以对裁剪后的图片进行基于宽度的归一化处理,因为裁剪后的图片可能很小或者很大,不利于算法设计,因此本实施例中,按照预先设定的宽度来对图片进行缩放,将所有图片缩放到相同的宽度,而高度则进行等比例缩放,更利于图片的处理。

s204、服务器对归一化处理后的图片进行灰度化处理,得到灰度化处理后的图片。

另外,由于灰度化处理可以减少需要处理的数据量,并且灰度化处理后的图片可以完整反映纹理信息,因此还可以对图片进行灰度化处理;本发明实施例中,使用的灰度化处理的公式为:

(3*r+5*g+2*b)/10;

其中(r,g,b)为彩色图像每个像素颜色值的红绿蓝分量,可参考图2d,为灰度化处理后的图片的示意图。

需要说明的是,对获取到的头发区域预处理包括但不限于裁剪、归一化处理以及灰度化处理中的一种或多种组合处理,并且,也可以进行灰度化处理再进行裁剪和归一化处理等等,此处举例对预处理类型及执行次序不构成限定。

(三)对预处理后的图片进行线性滤波:

s205、服务器按照预设的间隔角度,设置多个线性滤波器。

本实施例中,线性滤波器可具体为gabor滤波器,gabor滤波器是一个用于边缘检测的线性滤波器。gabor滤波器的频率和方向表示接近人类视觉系统对于频率和方向的表示,常用于纹理表示和描述,因此gabor滤波器也可称为方向滤波器。

对于头发区域的每一像素,每间隔一预设的间隔角度就创建一个gabor滤波器,比如,如果定义头发方向的角度取0~180度的范围,预设的间隔角度为3度,即每间隔3度创建一个gabor滤波器,这样就需要180/3=60个gabor滤波器。

可一并参考图2e,为几个角度的滤波器的方向示意,其中(a)表示0度,(b)为45度,(c)为90度,(d)为135度,(e)为180度。

当然,也可以使用其他间隔角度来创建滤波器,具体的可以按照具体场景来设定,此处举例不构成限定。

可理解的是,越小的间隔角度需要更多的滤波器,该情况下处理速度较慢但是处理效果更准确,越大的间隔角度需要越少的滤波器,该情况下处理速度更快,但是准确性下降。

s206、服务器利用设置的多个线性滤波器,对灰度化处理后的图片中的头发区域进行滤波处理,得到头发区域各像素相应的多个滤波器响应值。

比如,步骤s205中使用60个方向滤波器对图片进行滤波,那么就得到了60个滤波结果图像,对于图像中的每一个像素来说就对应了60个值,每一个值都是其中一个方向滤波器的滤波器响应值(可简称响应值),其中最大的一个响应值所使用的方向滤波器对应的方向,可认为就是该像素的方向值。

(四)根据线性滤波结果进行不确定性计算:

s207、服务器根据滤波器响应值,判断相应像素的方向值是否为可确定。

对于每一个像素,都先要先评价其方向值是可确定还是不可确定。其中,像素的方向值是指每个像素所在的局部区域的纹理方向的角度值,比如一个像素头发方向都是垂直往下的,那么这个像素的方向值就是90度。

s208、若像素的方向值为可确定,则服务器从多个滤波器响应值中获取最大的滤波器响应值,并将该最大的滤波器响应值对应的方向确定为该像素的方向值。

比如,如图2f所示,是一个像素的方向响应曲线,以及对应头发纹理方向的示意,其中该方向响应曲线由60个响应值连接而成,横坐标为方向值,纵坐标为响应值,可明显确定在90度位置是响应值最大值,那么可以确定该像素的纹理方向(即方向值)就是90度,即该像素的方向值为可确定,该像素可认为是已知像素。

s209、若像素的方向值为不可确定,则服务器将方向值为不可确定的像素作为待定像素。

相反,如果某一个像素的响应曲线没有明显的峰值,则该像素的方向值为不可确定,该像素可认为是待定像素,如图2g所示,为另一个像素的方向响应曲线,以及对应头发纹理方向的示意。

对整个头发区域的所有像素进行处理,可以得到全图的方向值即方向图,方向图是由一个图片中所有像素(头发区域的像素)的方向值所组成的,和图像宽高相同的二维数值矩阵就是一个方向图,其中每一个像素的值就是该像素在原图片中的方向值。

如图2h所示,为一方向图示意,其中圆圈周围区域即是方向值为不可确定的区域,而线条周围即是方向值为可确定的区域,并且线条的方向代表头发的纹理方向。

其中,关于如何评价不确定性,有很多种计算方式,以下说明两种:

a、利用(vmax-vmin)/vmax来表示不确定性:

即,计算最大的响应值以及最小的响应值的差值,并计算该差值与最大的响应值的比值,这里v代表一个角度的响应值。

可理解的是,用这个公式计算图2f的像素,会得到一个接近1的值,计算图2g的像素会得到一个接近0的结果,说明该公式可以反映方向的不确定性。

b、利用标准方差来表示不确定性:

由于方差是反映一组统计数据偏离平均值的程度,因此可利用公式:

来反映,比如,公式中n是60,即总数据数;u是60个响应值的平均值,x则代表每一个gabor滤波器的响应值。通过这个公式计算图2f的像素,会得到一个很大的值,计算图2g的像素会得到一个很小的值,说明该公式可以反映方向的不确定性。

需说明的是,不确定性计算后需要设定一个阈值来进行判断,大于该阈值认为像素的方向值为可确定的,小于阈值认为该像素的方向值为不可确定的。其中,阈值的设置和不确定性计算的公式相关,同时需要根据实际实验结果来选取。比如可以选择平均值作为阈值,即所有像素方向不确定性计算结果的平均值。

(五)使用已知方向值的像素对待定像素进行扩散来得到全部像素的方向值:

s210、服务器根据预设的像素扩散范围确定待定区域。

由于通过(四)的处理和评判,可以确定出已知像素及相应方向值,以及待定像素,因此本实施例中,可以使用已知方向值的区域对方向值待定的区域进行扩散来得到全部的方向值,扩散从已知区域边界开始,直到所有区域都被扩散到为止。

比如,以预设的像素扩散范围为限定,先确定出待定区域,该待定区域包含待定像素以及其周围的已知方向值的像素,其中,预设的像素扩散范围可以设定为四宫格,也可以设定为以待定像素为基准的九宫格,或者是更大的扩散范围,视具体场景而定。

s211、服务器在待定区域中,确定已知方向值的像素的个数最多的目标区域。

s212、服务器从目标区域开始扩散,根据目标区域中已知方向值的像素的方向值,计算目标区域中待定像素的方向值,将计算后的待定像素确定为已知方向值的像素。

下面以四宫格为例对扩散进行简单分析,如图2i所示,为待定像素的方向值计算示意,其中,底面为阴影的像素的方向值为不可确定,即该像素为待定像素,以四宫格为扩散范围,在其周围像素中确定目标区域,如它周围有三个已知像素(21,21,24),因此可以将包含这三个已知像素和待定像素的区域确定为目标区域,并用虚线框表示,然后,利用这三个已知像素(21,21,24)计算待定像素的方向值。

在某些实施方式中,如果某些待定区域中已知像素包括有一个或两个,那么还是优选的先计算已知像素最多的待定区域,然后从该待定区域开始扩散,以同样的方式进行计算。

为了便于计算,可以将这些已知像素的方向值求平均值来得到待定像素的方向值,如图2i所示待定像素的方向值为22。

需说明的是,计算待定像素的方向值的方式有很多,比如可以直接计算平均值,或者使用加权平均值等,或者使用解偏微分方程的方法,效果会更平滑,但是速度比较慢且实用性较差,因此视具体场景而定,此处不作具体限定。

s213、服务器判断所有待定像素的方向值是否计算完毕,若否,则返回执行步骤s210,若是,则执行步骤s214。

也就是说,从目标区域开始扩散并计算,对于每一目标区域,根据其中已知方向值的像素的方向值来计算待定像素的方向值,并且,计算后的待定像素就可认为是已知方向值的像素,即已知像素,可对其周围的待定像素的方向值进行计算。

使用同样的方式不断的计算,即每进行一次目标区域的待定像素的计算,就重新确定待定区域,并再次在这些待定区域中重新确定出当前需要计算的目标区域,并根据其中已知方向值的像素的方向值来计算待定像素的方向值,如此循环,直至所有待定像素的方向值计算完毕,就可以将表征像素的方向值的表格所有待定像素的方向值都填满。

(六)对头发纹理的方向图进行平滑处理:

s214、服务器根据计算后的各像素的方向值,得到初始的方向图,并利用使用中值滤波加高斯滤波对初始方向图进行平滑处理,得到最终的方向图。

可以理解的是,经过扩散后,可以计算到的各像素的方向值,并且可以根据这些方向值得到初始的方向图,如图2j所示,其中头发区域都也可以使用线条进行表示,并且线条的方向代表头发的纹理方向。

由于生成的初始的方向图会出现局部方向凌乱,从而导致整体不平滑流畅的问题,因此本发明实施例中对方向图使用中值滤波加高斯滤波进行平滑。比如,先使用中值滤波,来平滑掉一些局部的大尺度的方向凌乱,再使用高斯滤波进行整体的平滑处理。

其中,中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点;高斯滤波为一种低通滤波技术,被广泛用在图像降噪上,通常在边缘检测之前,用来移除细节,等等,此处对其滤波过程不作赘述。

如图2k所示,为中值滤波后的效果图,其中箭头标记位置的像素经中值滤波后更能反映头发的整体走向;如图2l所示,为高斯滤波后的效果图,其中箭头标记位置的像素经高斯滤波后与周围像素的走向更协调平滑。最终得到的平滑的方向图可以用于多种后续图像处理场合,比如手绘风格处理,或者头发动态模糊,等等。

本发明实施例中,平滑处理的方法可以比较灵活,比如使用多次中值滤波加多次高斯滤波,等等,但是次数多了会过于平滑而忽略的头发方向本身的局部特征,因此具体操作可视场景而定,此处仅为举例说明,不构成限定。

由上述可知,本实施例提供的头发纹理方向的处理方法,在确定出待处理图片中的头发区域后,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;根据滤波器响应值评判像素的方向值是否为可确定时,其中方向值为每个像素所在的局部区域的纹理方向的角度值;如果方向值不可确定,则可以根据其周围的已知像素的方向值计算待定像素的方向值,从而可以确定整个头发区域的纹理方向,即使用已知方向值的区域对方向值待定的区域进行扩散来得到全部的方向值,避免了无法分辨头发纹理方向的问题,也大大提高了方向值检测的准确性,并且,在得到方向图后,对方向图使用中值滤波加高斯滤波进行平滑处理,从而解决了因局部方向凌乱而导致的整体不平滑流畅的问题,从而使得得到的方向图更加平滑。

为便于更好的实施本发明实施例提供的头发纹理方向的处理方法,本发明实施例还提供一种基于上述头发纹理方向的处理方法的装置。其中名词的含义与上述头发纹理方向的处理的方法中相同,具体实现细节可以参考方法实施例中的说明。

请参阅图3a,图3a为本发明实施例提供的头发纹理方向的处理装置的结构示意图,该头发纹理方向的处理装置可以包括区域确定模块301、滤波模块302、待定像素确定模块303、第一计算模块304以及方向确定模块305。

其中区域确定模块301用于获取待处理图片,并确定待处理图片中的头发区域。

比如,可以从存储器中获取待处理图片,也可以根据用户通过终端输入来获取待处理图片,或者还可以通过其他设备发送来获取待处理图片,等等;其中,该待处理图片可具体为包含头发区域的人像图片。

进一步的,区域确定模块301可具体用于:获取待处理图片,并根据预设的图像分割算法或者根据用户的选择操作,确定待处理图片中的头发区域。

可以理解的是,确定头发区域目的是为了去除待处理图片的背景部分,使得服务器只处理头发区域,从而减少处理的数据量。其中,确定待处理图片中的头发区域的方式有很多,如可以通过图像分割(graphcut)、深度神经网络等自动分割的方式,或者可以通过用户手动涂抹选择得到,等等,从而确定出头发区域,此处不作具体限定。

滤波模块302用于利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值。

本发明实施例中,线性滤波器是指滤波器输出量是其输入量的线性函数的滤波器,图像中的线性滤波器是用于与图像进行卷积运算的一个较小的数值矩阵,通过卷积处理可以实现很多图像处理效果,比如图像模糊,获取图像边缘,图像增强处理等。

其中,线性滤波器可具体为gabor滤波器,gabor滤波器是一个用于边缘检测的线性滤波器。gabor滤波器的频率和方向表示接近人类视觉系统对于频率和方向的表示,常用于纹理表示和描述,因此gabor滤波器也可称为方向滤波器。在空域,由于一个二维的gabor滤波器是一个正弦平面波和高斯核函数的乘积,具有在空间域和频率域同时取得最优局部化的特性,与人类生物视觉特性很相似,因此能够很好地描述对应于空间频率、空间位置及方向选择性的局部结构信息。

待定像素确定模块303用于当根据所述滤波器响应值判断出相应像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,该方向值为每个像素所在的局部区域的纹理方向的角度值。

可以理解的是,本发明实施例中像素的方向值是指每个像素所在的局部区域的纹理方向的角度值,比如一个像素头发方向都是垂直往下的,那么这个像素的方向值就是90度。

第一计算模块304用于根据所述待定像素周围的像素的方向值,计算所述待定像素的方向值。

方向确定模块305用于确定头发区域的纹理方向。

在确定出待定像素后,可根据待定像素周围的像素中可知像素的方向值,计算待定像素的方向值,从而确定出整个头发区域的纹理方向。

请一并参考图3b,为头发纹理方向的处理装置的另一结构示意图,其中该头发纹理方向的处理装置400还可以包括:

预处理模块306,用于根据确定的头发区域,对所述待处理图片进行裁剪,生成裁剪后的图片;按照预设的图片宽度值,对裁剪后的图片进行归一化处理,得到归一化处理后的图片;对归一化处理后的图片进行灰度化处理,得到灰度化处理后的图片。

其中,在对头发区域进行滤波处理之前,还可以先对获取到的头发区域进行预处理,比如,根据确定出来的头发区域,从整张待处理图片中将头发区域裁剪出来,从而缩小待处理图片的大小,提高处理速度。

由于裁剪后的图片大小不一,不利于算法设计,因此可以按照预设的图片宽度值,对裁剪后的图片进行归一化处理,从而后续图片处理更为方便。

比如,如果需要进一步减少需要处理的数据量还可以对归一化处理后的图片进行灰度化处理,并且灰度化处理后的图片可以完整反映纹理信息。

需要说明的是,对获取到的头发区域预处理包括但不限于裁剪、归一化处理以及灰度化处理中的一种或多种组合处理,并且,也可以进行灰度化处理再进行裁剪和归一化处理等等,此处举例对预处理类型及执行次序不构成限定。

基于此,滤波模块302具体用于:利用线性滤波器对所述灰度化处理后的图片中的头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值。

由此,本发明实施例中可具体使用gabor滤波器对头发区域进行滤波处理,从而可以得到表征头发纹理方向的方向值,其中,该滤波模块302可以具体用于:按照预设的间隔角度,设置多个线性滤波器,利用设置的多个线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的多个滤波器响应值。

也就是说,对于头发区域的每一像素,每间隔一预设的间隔角度就创建一个线性滤波器,比如,如果定义发方向的角度取0~180度的范围,预设的间隔角度为x,则每一像素就需要创建(180/x)个线性滤波器,从而每一像素可以对应得到(180/x)个滤波器响应值。

其中,该预设的间隔角度可以按照具体场景来设定,若对处理速度有要求的场合,预设的间隔角度可以设定大一些,若对计算精确性有要求的场合,预设的间隔角度可以设定小一些,此处不作具体限定。

在某些实施方式中,得到头发区域中各像素相应的滤波器响应值之后,需要评价像素的方向值的不确定性,如图3b所示,头发纹理方向的处理装置400还可以包括:

判断模块307,用于根据所述滤波器响应值,判断相应像素的方向值是否为可确定。

第二计算模块308,用于在判断出相应像素的方向值为可确定时,从所述多个滤波器响应值中获取最大的滤波器响应值,将所述最大的滤波器响应值对应的方向确定为该像素的方向值。

在一种实施方式中,判断出像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,触发第一计算模块304进行操作;在另一种实施方式中,判断出像素的方向值为可确定时,从得到的多个滤波器响应值中获取最大的滤波器响应值,并将该最大的滤波器响应值对应的方向确定为该像素的方向值,这样方向值可确定的像素就可认为是已知像素。

其中,判断模块307判断相应像素的方向值是否为可确定的实现方式有很多,比如,在某些实施方式中,请一并参考图3c,为头发纹理方向的处理装置的另一结构示意图,其中该头发纹理方向的处理装置500中判断模块307可以具体包括:

获取子模块3071,用于从所述多个滤波器响应值中获取最大的滤波器响应值以及最小的滤波器响应值。

如,每一像素创建(180/x)个线性滤波器,每一像素可以对应得到(180/x)个滤波器响应值v,并从这(180/x)个滤波器响应值中选取最大的滤波器响应值vmax和最小的滤波器响应值vmin。

判断子模块3072,用于根据最大的滤波器响应值以及最小的滤波器响应值判断相应像素的方向值是否为可确定。

进一步的,该判断子模块3072可以具体用于计算最大的滤波器响应值以及最小的滤波器响应值的差值,并计算所述差值与最大的滤波器响应值的比值;若所述比值大于第一预设阈值,则判断出相应像素的方向值为可确定;若所述比值小于第一预设阈值,则判断出相应像素的方向值为不可确定。

其中,该第一预设阈值的设定和不确定性计算的公式相关,同时需要根据实际实验结果来选取。比如可以选择平均值作为第一预设阈值,即所有像素方向不确定性计算结果的平均值。

又比如,在某些实施方式中,判断模块307可以具体用于:

计算所述多个滤波器响应值的标准方差;若所述标准方差大于第二预设阈值,则判断出相应像素的方向值为可确定;若所述标准方差小于第二预设阈值,则判断出相应像素的方向值为不可确定。

即该实施方式中,使用标准方差来表示不确定性,方差是反映一组统计数据偏离平均值的程度。

其中,该第二预设阈值的设定也和不确定性计算的公式相关,同时需要根据实际实验结果来选取。比如也可以选择平均值来作为第二预设阈值,即所有像素方向不确定性计算结果的平均值。

需说明的是,第一预设阈值和第二预设阈值可以设定为一样,也可以设定为不一样,此处不作具体限定。

如图3c所示,头发纹理方向的处理装置500中第一计算模块304可以具体包括:

确定子模块3041,用于根据预设的像素扩散范围确定待定区域,所述待定区域包含待定像素以及其周围的已知方向值的像素。

比如,以预设的像素扩散范围为限定,先确定出待定区域,其中,该该待定区域包含待定像素以及其周围的已知方向值的像素,从而可以以一个待定区域为单位,根据其中已知方向值的像素计算待定像素的方向值。

需说明的是,预设的像素扩散范围可以设定为四宫格,也可以设定为以待定像素为基准的九宫格,或者是更大的扩散范围,此处不作具体限定。

计算子模块3042,用于根据所述待定区域中已知方向值的像素的方向值,计算待定像素的方向值。

进一步的,该计算子模块3042可以具体用于:

在待定区域中,确定已知方向值的像素的个数最多的目标区域;从所述目标区域开始扩散,根据目标区域中已知方向值的像素的方向值,计算目标区域中待定像素的方向值,将计算后的待定像素确定为已知方向值的像素,返回确定子模块根据像素扩散范围确定待定区域,并从待定区域中确定目标区域及计算待定像素的方向值的步骤,直至所有待定像素的方向值计算完毕。

首先,在确定的多个待定区域中,找出包含已知方向值的像素的个数最多的待定区域,并将该待定区域作为当前需要计算的目标区域;其中该目标区域可以为一个,也可以为多个。

然后,从目标区域开始扩散并计算,对于每一目标区域,根据其中已知方向值的像素的方向值来计算待定像素的方向值,并且,计算后的待定像素就可认为是已知方向值的像素,即已知像素,可对其周围的待定像素的方向值进行计算。

接着,返回根据预设的像素扩散范围确定待定区域的步骤,即每进行一次目标区域的待定像素的计算,就重新确定待定区域,并再次在这些待定区域中重新确定出当前需要计算的目标区域,并根据其中已知方向值的像素的方向值来计算待定像素的方向值,如此循环,直至所有待定像素的方向值计算完毕。

需说明的是,计算待定像素的方向值的方式有很多,比如可以直接计算平均值,或者使用加权平均值等,或者使用解偏微分方程的方法,等等,此处不作具体限定。

可以理解的是,在待定像素的方向值计算完毕后,基于前述各像素的方向值计算,方向确定模块305可以具体用于:根据计算后的各像素的方向值,确定初始纹理方向;对所述初始纹理方向进行平滑处理,得到最终纹理方向,并确定为头发区域的纹理方向。

由于根据各像素的方向值确定出初始纹理方向,可能会存在局部方向凌乱,从而导致生成的方向图不平滑流畅,因此,可以对该初始纹理方向进行平滑处理,如使用中值滤波和/或高斯滤波,等等,得到最终纹理方向,即头发区域的纹理方向,生成最终的头发区域的方向图。

本发明实施例中,方向图是由一个图片中所有像素(头发区域的像素)的方向值所组成的,和图像宽高相同的二维数值矩阵就是一个方向图,其中每一个像素的值就是该像素在原图片中的方向值。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

该头发纹理方向的处理装置具体可以集成在服务器等设备中。

由上述可知,本实施例提供的头发纹理方向的处理装置,在确定出待处理图片中的头发区域后,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;根据滤波器响应值评判像素的方向值是否为可确定时,其中方向值为每个像素所在的局部区域的纹理方向的角度值;如果方向值不可确定,则可以根据其周围的已知像素的方向值计算待定像素的方向值,从而可以确定整个头发区域的纹理方向,即使用已知方向值的区域对方向值待定的区域进行扩散来得到全部的方向值,避免了无法分辨头发纹理方向的问题,也大大提高了方向值检测的准确性。

本发明实施例还提供一种服务器,其中可以集成本发明实施例的头发纹理方向的处理装置,如图4所示,其示出了本发明实施例所涉及的服务器600的结构示意图,具体来讲:

该服务器600可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

服务器还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该服务器还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取待处理图片,并确定待处理图片中的头发区域;利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;当根据滤波器响应值判断出相应像素的方向值为不可确定时,将方向值为不可确定的像素作为待定像素,该方向值为每个像素所在的局部区域的纹理方向的角度值;根据待定像素周围的像素的方向值,计算待定像素的方向值,以确定头发区域的纹理方向。

在某些实施方式中,处理器401用于获取待处理图片,并确定待处理图片中的头发区域时具体包括:获取待处理图片,并根据预设的图像分割算法或者根据用户的选择操作,确定待处理图片中的头发区域。

在利用线性滤波器对头发区域进行滤波处理之前,处理器401还可以用于,根据确定的头发区域,对待处理图片进行裁剪,生成裁剪后的图片;按照预设的图片宽度值,对裁剪后的图片进行归一化处理,得到归一化处理后的图片;对归一化处理后的图片进行灰度化处理,得到灰度化处理后的图片;基于此,处理器401利用线性滤波器对灰度化处理后的图片中的头发区域进行滤波处理。

进一步的,处理器401还可以用于,按照预设的间隔角度,设置多个线性滤波器;利用设置的多个线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的多个滤波器响应值。

利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值之后,处理器401还可以用于,根据所述滤波器响应值,判断相应像素的方向值是否为可确定;在判断出相应像素的方向值为可确定时,从所述多个滤波器响应值中获取最大的滤波器响应值;将所述最大的滤波器响应值对应的方向确定为该像素的方向值。

在某些实施方式中,处理器401根据滤波器响应值,判断相应像素的方向值是否为可确定可以具体包括:从多个滤波器响应值中获取最大的滤波器响应值以及最小的滤波器响应值,并根据最大的滤波器响应值以及最小的滤波器响应值判断相应像素的方向值是否为可确定。

进一步的,处理器401根据最大的滤波器响应值以及最小的滤波器响应值判断相应像素的方向值是否为可确定时具体用于,从多个滤波器响应值中获取最大的滤波器响应值以及最小的滤波器响应值,并根据最大的滤波器响应值以及最小的滤波器响应值判断相应像素的方向值是否为可确定。

在某些实施方式中,处理器401用于计算所述多个滤波器响应值的标准方差;若所述标准方差大于第二预设阈值,则判断出相应像素的方向值为可确定;若所述标准方差小于第二预设阈值,则判断出相应像素的方向值为不可确定。

在某些实施方式中,处理器401在根据所述待定像素周围的像素的方向值,计算所述待定像素的方向值包括:根据预设的像素扩散范围确定待定区域,所述待定区域包含待定像素以及其周围的已知方向值的像素;根据所述待定区域中已知方向值的像素的方向值,计算待定像素的方向值。

其中,处理器401根据所述待定区域中已知方向值的像素的方向值,计算待定像素的方向值可以具体包括:在待定区域中,确定已知方向值的像素的个数最多的目标区域;从所述目标区域开始扩散,根据目标区域中已知方向值的像素的方向值,计算目标区域中待定像素的方向值,将计算后的待定像素确定为已知方向值的像素,返回根据像素扩散范围确定待定区域,并从待定区域中确定目标区域及计算待定像素的方向值的步骤,直至所有待定像素的方向值计算完毕。

在某些实施方式中,处理器401确定头发区域的纹理方向时具体包括:根据计算后的各像素的方向值,确定初始纹理方向;对所述初始纹理方向进行平滑处理,得到最终纹理方向,并确定为头发区域的纹理方向。

由上述可知,本实施例提供的服务器中,在确定出待处理图片中的头发区域后,利用线性滤波器对头发区域进行滤波处理,得到头发区域中各像素相应的滤波器响应值;根据滤波器响应值评判像素的方向值是否为可确定时,其中方向值为每个像素所在的局部区域的纹理方向的角度值;如果方向值不可确定,则可以根据其周围的已知像素的方向值计算待定像素的方向值,从而可以确定整个头发区域的纹理方向,即使用已知方向值的区域对方向值待定的区域进行扩散来得到全部的方向值,避免了无法分辨头发纹理方向的问题,也大大提高了方向值检测的准确性。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对头发纹理方向的处理方法的详细描述,此处不再赘述。

本发明实施例提供的所述头发纹理方向的处理装置,譬如为计算机、平板电脑、具有触摸功能的手机等等,所述头发纹理方向的处理装置与上文实施例中的头发纹理方向的处理方法属于同一构思,在所述头发纹理方向的处理装置上可以运行所述头发纹理方向的处理方法实施例中提供的任一方法,其具体实现过程详见所述头发纹理方向的处理方法实施例,此处不再赘述。

需要说明的是,对本发明所述头发纹理方向的处理方法而言,本领域普通测试人员可以理解实现本发明实施例所述头发纹理方向的处理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中可包括如所述头发纹理方向的处理方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)等。

对本发明实施例的所述头发纹理方向的处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。

以上对本发明实施例所提供的一种头发纹理方向的处理方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1