一种基于线条聚类的头发密度评估方法转让专利

申请号 : CN201611061009.9

文献号 : CN106778827B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩英任大明张奕

申请人 : 南京鑫和汇通电子科技有限公司

摘要 :

本发明提出一种基于线条聚类的头发密度评估方法,能够有效识别出图像中的头发并根据识别结果统计头发数目和宽度,计算头发密度,实现头发密度评估。本发明的方法可实现对头发生长过程的实时跟踪,快速有效地估计头发密度并将治疗前后头发密度进行对比,为评判医学治疗效果提供有效的依据,在实际医学应用中有着重要的意义。

权利要求 :

1.一种基于线条聚类的头发密度评估方法,其特征在于,包括以下步骤:步骤一:在计算机中输入待检测图像并处理为灰度图像;

步骤二:利用直方图进行图像预处理增加图像对比度;

步骤三:图像背景建模,以提取图像背景图和前景图,根据前景图和背景图获取图像前景点、背景点和图像区域信息,并对提取的背景图像进行归一化处理;

步骤四:计算归一化后图像的积分图,以快速获取图像的Haar特征点;

步骤五:利用canny边缘检测算法获取待检测图像的所有边缘点和边缘线;

步骤六:对所有边缘线进行分割,并根据线条长度进行排序,剔除长度小于给定阈值不足以构成头发的线条;

步骤七:基于上述关键点检测结果,关键点即获取的所有前景点、背景点、Haar特征点及边缘点,将图像所有像素点进行分类,分为前景点、背景点、Haar特征点以及边缘点,并在图像上标记每个关键点的类型;

步骤八:遍历图像所有像素点,建立每个像素点与其上下左右4方向相邻关键点的关系图,以记录每一点4方向上相邻的边缘点、Haar特征点以及每个点4方向上的局部邻域内前景点总数;

步骤九:基于上述关系图,遍历图像所有边缘线,找出每条边缘线上下左右4方向上相邻的边缘线并判定边缘线间的连接性,获取初始边缘线连接结果;

步骤十:基于边缘线上下左右4方向上相邻关键点的信息,将所有边缘线分为三类,分别为:头发区域左线条、头发区域右线条和头发区域中线;

步骤十一:获取图像局部区域内的灰度极值点,并利用其提取图像各个局部区域的头发区域中线;

步骤十二:遍历所有图像头发区域中线,将其两侧相邻的共线边缘线进行连接,更新边缘线连接结果;

步骤十三:基于边缘线连接结果,验证边缘线连接性,并将连接的边缘线进行聚类,同时根据边缘线的类型,将头发区域中线两侧相邻的左右线条进行聚类,获取初始聚类结果;

步骤十四:基于初始聚类结果,按照每个类别中最长边缘线的长度将所有类别排序,从包含最长边缘线的类别开始,遍历所有类别,将每个类别左右的属于同一头发的不同类别进行合并,获取最终聚类结果;

步骤十五:基于步骤十四的聚类结果,每个类别即为每根头发,以此获取图像中所有头发区域,确定每个头发区域的最左和最右边界,并根据边界间的距离计算每根头发的宽度;

步骤十六:根据每根头发宽度分布统计所有头发宽度分布直方图,并对直方图归一化获取头发宽度分布函数;

步骤十七:利用头发数目和头发宽度分布函数估计头发密度,实现头发密度评估。

2.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤三中图像背景建模,以提取图像背景图的步骤为:(31)在计算机中输入待检测图像并处理为灰度图像;

(32)统计图像灰度分布直方图;

(33)获取直方图峰值位置处的图像灰度值,并以该灰度值为中心扩展灰度值范围,直到至少一半的图像像素点灰度值属于当前灰度值范围,得到背景图像的初始灰度值范围(I_low,I_hig);

(34)将图像分成多个局部小邻域,将每个邻域内灰度值在(I_low,I_hig)范围内的像素点标记为背景点;

(35)计算每个局部小邻域内的所有背景点的平均灰度值,代替原来的背景点灰度值,更新所有局部小邻域;

(36)计算每个局部小邻域周围8邻域内的小邻域均值,获取初始的小邻域的背景图;

(37)重复步骤(35)和步骤(36),获取最终的小邻域背景图;

(38)将小邻域内像素点的灰度值与其背景图中像素点的灰度值进行比较,将灰度大于背景点灰度的像素点标记为图像亮点,灰度小于背景点灰度的像素点标记为图像暗点,灰度等于背景点灰度的像素点标记为图像背景点;

(39)基于步骤(38)获取图像的所有背景点,提取出背景图像并进行归一化处理。

3.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤五中利用canny边缘检测算法获取待检测图像的所有边缘点和边缘线的步骤为:(51)对步骤一得到的灰度图像进行高斯模糊以减少图像噪声的干扰;

(52)计算降噪后的图像中每个像素点的梯度值和方向;

(53)对每个像素点的梯度值进行非极大值抑制,初步得到图像边缘点集合;

(54)采用双阈值方法进行边缘连接,剔除虚假边缘,补全边缘缺口,获得更精确的边缘点集合;

(55)得到所有边缘点之后对边缘点利用8邻域连接进行分类,属于同一类的即构成同一条边缘线,以此获取所有边缘线。

4.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤六中对所有边缘线进行分割的步骤为:(61)给定边缘线,计算边缘线起点的方向角度theta1;

(62)遍历边缘线上的所有边缘点,计算当前边缘点的方向角度theta2;

(63)计算起点与当前边缘点的方向角度差theta=theta1-theta2;

(64)若角度差theta小于给定角度差阈值,则继续遍历边缘线的下一边缘点,否则在当前边缘点处断开,获取分割后的边缘线;

(65)将当前边缘点标记为新的分割边缘线的起点,继续遍历当前线条上的剩余边缘点,重复步骤(62)-(64)获取下一分割的边缘线,直至到达边缘线终点;

(66)对所有边缘线重复上述步骤,获取所有分割的边缘线。

5.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤九中,获取初始边缘线连接结果的步骤为:(91)遍历图像所有边缘线,找出每条边缘线上下左右4方向相邻的边缘线;

(92)每条边缘线都有两个端点,把当前边缘线的两个端点与周围4方向上找到的边缘线的端点进行比较,最终确定两个距离最近的端点进行预连接形成新的线条;

(93)计算形成的新的线条的方向角度及原来未预连接时的两线条的方向角度,比较角度差值,如果差值大于给定方向角度阈值,则两线条不能形成同一线条,不能进行连接;否则执行步骤(94);

(94)比较两线条左右线条,如果两线条共享相同的左或/和右线条,并且与左或/和右线条之间的距离小于给定阈值,则两线条可以合并同一线条,将两线条进行连接,获取初始线条连接结果。

6.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤十中,将所有边缘线分为三类的方式为:(101)遍历图像所有边缘线,基于图像区域信息确定边缘线的边界类型borderType:若边缘线左侧为图像背景,右侧为图像前景,则边界类型为左;若边缘线右侧为图像背景,左侧为图像前景,则边界类型为右;若边缘线两侧都为图像前景,则边界类型为中央;边缘线两侧都为图像背景的剔除;

(102)统计每条边缘线左、右两侧共线边缘点数目以及Haar特征点数目,并计算共线边缘点数目以及Haar特征点数目分别占总像素点的比例;

(103)根据步骤(102)中的比例结果,设置边缘线的Haar特征类型HaarType和共线类型CollinearType;

(104)根据步骤(101)和步骤(104)分别获得的边界类型borderType,Haar特征类型HaarType以及共线类型CollinearType确定边缘线最终的边缘类型edgeType;边缘类型edgeType共分为三类,分别为头发区域左线条、头发区域右线条和头发区域中线。

7.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤十一中获取图像局部区域内的灰度极值点,并利用其提取图像各个局部区域的头发区域中线的方式为:(111)遍历图像所有像素点,对图像上的每一像素点在以其为中心的长为a、宽为b的区域内作光强度平均,以得到偏重于垂直方向的平滑图像;

(112)扫描图像的每一像素点,如果此点的强度同时超出左、右两边点的强度加上给定的强度阀值则判定为极大值点max point;如果强度同时低于左、右两边点的强度减去给定的强度阀值则判定为极小值点min point;

(113)扫描图像上所有极大值点max point并进行连接形成线条;

(114)扫描图像上所有极小值点min point并进行连接形成线条;

(115)将上述形成的线条标记为垂直线条,同时如果线条的平均强度是在背景光强范围内则同时标记为背景线条,否则标记为前景线条;

(116)采用同样的方法,重复以上步骤用宽为a、长为b的区域得到横行线条,同时同样根据线条平均光强度标记为背景线条或前景线条;

(117)上述找到的所有垂直线条和横行线条即为头发区域中线,以此获取图像各个局部区域的头发区域中线。

8.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤十二中遍历所有图像头发区域中线,将其两侧相邻的共线边缘线进行连接的方式为:(121)遍历图像所有头发区域中线,统计每条头发区域中线两侧相邻的共线边缘线;

(122)将中线两侧共线边缘线分别进行连接,更新边缘线连接结果。

9.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤十三中,获取初始聚类结果的步骤为:(131)基于边缘线连接结果获取所有已连接边缘线集合;

(132)遍历集合中的每个连接边缘线,计算集合中每条边缘线的方向角度,给定角度阈值,若边缘线方向角度小于给定角度阈值则划分为同一类;

(133)根据边缘线类型,将头发区域中线两侧相邻的左右线条组合划分为同一类,获取初始聚类结果。

10.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤十五中计算每根头发的宽度的步骤为:(151)获取每根头发区域的左、右边界;

(152)根据左、右边界上配对的点计算两点间的距离,得到每个头发区域边界上所有点间的距离;

(153)统计边界点间距离分布直方图,根据直方图计算平均距离作为头发的宽度,以此获取所有头发的宽度。

11.根据权利要求1所述的一种基于线条聚类的头发密度评估方法,其特征在于,所述步骤十六中获取头发宽度分布函数的步骤为:(161)统计每根头发的宽度分布直方图,并对直方图归一化获取每根头发的宽度分布函数;

(162)根据每根头发的宽度分布直方图计算平均宽度作为头发的最终宽度,以此获取所有头发的宽度tki,(i=1,2,...,M),统计所有头发宽度分布直方图;

(163)不考虑每根头发的宽度分布,对步骤(162)中直方图进行归一化,获取所有头发的宽度分布函数;

考虑每根头发的宽度分布,获取所有头发宽度分布函数。

12.一种头发密度检测系统,其特征在于,采用权利要求1至11所述的任一项一种基于线条聚类的头发密度评估方法,将待检测图像中的头发识别出来,并统计头发数目和宽度,最终计算头发密度,实现头发密度评估。

说明书 :

一种基于线条聚类的头发密度评估方法

技术领域

[0001] 本发明涉及计算机图像检测识别领域,特别是指一种基于线条聚类的头发识别方法及头发密度评估系统。

背景技术

[0002] 基于线条特征的图像识别方法已受到广泛关注,目前已有很多学者通过提取图像线条特征进行图像识别,但是并没有有效的对线条进行聚类的方法,头发图像在图像识别领域通常是一种特殊图像,对特定技术特征的识别的影响较小,因此,目前并没有具体的针对头发识别的方法。
[0003] 由于传统的头发密度估计只能是人为去统计头发的数目并计算宽度,耗费大量的时间,同时由于头发一般比较细长,人为统计结果往往存在很大的误差,因此头发密度估计在医疗评估和检测中具有重要的意义。线条是图像的重要特征,目前已有大量方法利用图像线条特征进行图像识别,考虑到头发图像的特殊性,在检测到图像线条之后,关键是对线条进行聚类,将属于同一头发的线条划分为同一类别,以此实现头发识别并统计头发数目,计算头发宽度和厚度。
[0004] 本发明提出的基于线条聚类的头发密度评估方法,通过统计图像线条与其周围相邻线条的关系,将属于同一条线的所有线条进行连接,实现线条的初次聚类;并提取图像各个局部区域的中线,利用中线对线条进行再次聚类,以此获取图像中所有头发区域。在实际应用中,只要提供光照强度较好的头发图像,将图像处理为灰度图输入计算机,便可根据我们的算法快速有效地识别出图像中的头发,同时统计头发数目,计算头发宽度和密度,为头发密度评估提供了极大的便利。

发明内容

[0005] 本发明提出一种基于线条聚类的头发密度评估方法,能够有效识别出图像中的头发并根据识别结果统计头发数目和宽度,计算头发密度,实现头发密度评估。
[0006] 本发明的技术方案是这样实现的:
[0007] 一种基于线条聚类的头发密度评估方法,其特征在于,包括以下步骤:
[0008] 步骤一:在计算机中输入待检测图像并处理为灰度图像;
[0009] 步骤二:利用直方图进行图像预处理增加图像对比度;
[0010] 步骤三:图像背景建模,以提取图像背景图和前景图,根据前景图和背景图获取图像前景点、背景点和图像区域信息,并对提取的背景图像进行归一化处理;
[0011] 步骤四:计算归一化后图像的积分图,以快速获取图像的Haar特征点;
[0012] 步骤五:利用canny边缘检测算法获取待检测图像的所有边缘点和边缘线;
[0013] 步骤六:对所有边缘线进行分割,并根据线条长度进行排序,剔除长度小于给定阈值不足以构成头发的线条;
[0014] 步骤七:基于上述关键点检测结果,关键点即获取的所有前景点、背景点、 Haar特征点及边缘点,将图像所有像素点进行分类,分为前景点、背景点、Haar 特征点以及边缘点,并在图像上标记每个关键点的类型;
[0015] 步骤八:遍历图像所有像素点,建立每个像素点与其上下左右4方向相邻关键点的关系图,以记录每一点4方向上相邻的边缘点、Haar特征点以及每个点 4方向上的局部邻域内前景点总数;
[0016] 步骤九:基于上述关系图,遍历图像所有边缘线,找出每条边缘线上下左右 4方向上相邻的边缘线并判定边缘线间的连接性,获取初始边缘线连接结果;
[0017] 步骤十:基于边缘线上下左右4方向上相邻关键点的信息,将所有边缘线分为三类,分别为:头发区域左线条、头发区域右线条和头发区域中线;
[0018] 步骤十一:获取图像局部区域内的灰度极值点,并利用其提取图像各个局部区域的头发区域中线;
[0019] 步骤十二:遍历所有图像头发区域中线,将其两侧相邻的共线边缘线进行连接,更新边缘线连接结果;
[0020] 步骤十三:基于边缘线连接结果,验证边缘线连接性,并将连接的边缘线进行聚类,同时根据边缘线的类型,将头发区域中线两侧相邻的左右线条进行聚类,获取初始聚类结果;
[0021] 步骤十四:基于初始聚类结果,按照每个类别中最长边缘线的长度将所有类别排序,从包含最长边缘线的类别开始,遍历所有类别,将每个类别左右的属于同一头发的不同类别进行合并,获取最终聚类结果;
[0022] 步骤十五:基于步骤十四的聚类结果,每个类别即为每根头发,以此获取图像中所有头发区域,确定每个头发区域的最左和最右边界,并根据边界间的距离计算每根头发的宽度;
[0023] 步骤十六:根据每根头发宽度分布统计所有头发宽度分布直方图,并对直方图归一化获取头发宽度分布函数;
[0024] 步骤十七:利用头发数目和头发宽度分布函数估计头发密度,实现头发密度评估。
[0025] 优选的是,所述步骤三中图像背景建模,以提取图像背景图的步骤为:
[0026] (31)在计算机中输入待检测图像并处理为灰度图像;
[0027] (32)统计图像灰度分布直方图;
[0028] (33)获取直方图峰值位置处的图像灰度值,并以该灰度值为中心扩展灰度值范围,直到至少一半的图像像素点灰度值属于当前灰度值范围,得到背景图像的初始灰度值范围(I_low,I_hig);
[0029] (34)将图像分成多个局部小邻域,将每个邻域内灰度值在(I_low,I_hig) 范围内的像素点标记为背景点;
[0030] (35)计算每个局部小邻域内的所有背景点的平均灰度值,代替原来的背景点灰度值,更新所有局部小邻域;
[0031] (36)计算每个局部小邻域周围8邻域内的小邻域均值,获取初始的小邻域的背景图;
[0032] (37)重复步骤(35)和步骤(36),获取最终的小邻域背景图;
[0033] (38)将小邻域内像素点的灰度值与其背景图中像素点的灰度值进行比较,将灰度大于背景点灰度的像素点标记为图像亮点,灰度小于背景点灰度的像素点标记为图像暗点,灰度等于背景点灰度的像素点标记为图像背景点;
[0034] (39)基于步骤(38)获取图像的所有背景点,提取出背景图像并进行归一化处理。
[0035] 提取图像背景图的背景点后剩余的为前景图的前景背景点。
[0036] 优选的是,所述步骤五中利用canny边缘检测算法获取待检测图像的所有边缘点和边缘线的步骤为:
[0037] (51)对步骤一得到的灰度图像进行高斯模糊以减少图像噪声的干扰;
[0038] (52)计算降噪后的图像中每个像素点的梯度值和方向;
[0039] (53)对每个像素点的梯度值进行非极大值抑制,初步得到图像边缘点集合;
[0040] (54)采用双阈值方法进行边缘连接,剔除虚假边缘,补全边缘缺口,获得更精确的边缘点集合;
[0041] (55)得到所有边缘点之后对边缘点利用8邻域连接进行分类,属于同一类的即构成同一条边缘线,以此获取所有边缘线。
[0042] 优选的是,所述步骤六中对所有边缘线进行分割的步骤为:
[0043] (61)给定边缘线,计算边缘线起点的方向角度theta1;
[0044] (62)遍历边缘线上的所有边缘点,计算当前边缘点的方向角度theta2;
[0045] (63)计算起点与当前边缘点的方向角度差theta=theta1-theta2;
[0046] (64)若角度差theta小于给定角度差阈值,则继续遍历边缘线的下一边缘点,否则在当前边缘点处断开,获取分割后的边缘线;
[0047] (65)将当前边缘点标记为新的分割边缘线的起点,继续遍历当前线条上的剩余边缘点,重复步骤(62)-(64)获取下一分割的边缘线,直至到达边缘线终点;
[0048] (66)对所有边缘线重复上述步骤,获取所有分割的边缘线。
[0049] 优选的是,所述步骤九中,获取初始边缘线连接结果的步骤为:
[0050] (91)遍历图像所有边缘线,找出每条边缘线上下左右4方向相邻的边缘线;
[0051] (92)每个边缘线都有两个终点,把当前边缘线的两个端点都与周围4方向上找到的边缘线的端点进行比较,最终确定两个距离最近的端点进行预连接形成新的线条;
[0052] (93)计算形成的新的线条的方向角度及原来未连接时的两线条的方向角度,比较角度差值,如果差值大于给定方向角度阈值,则两线条不能形成同一线条,不能进行连接;否则执行步骤(94);
[0053] (94)比较两线条左右线条,如果两线条共享相同的左或/和右线条,并且与左或/和右线条之间的距离小于给定阈值,则两线条可以合并同一线条,将两线条进行连接,获取初始线条连接结果。
[0054] 优选的是,所述步骤十中,将所有边缘线分为三类的方式为:
[0055] (101)遍历图像所有边缘线,基于图像区域信息确定边缘线的边界类型 borderType:若边缘线左侧为图像背景,右侧为图像前景,则边界类型为左;若边缘线右侧为图像背景,左侧为图像前景,则边界类型为右;若边缘线两侧都为图像前景,则边界类型为中央;边缘线两侧都为图像背景的剔除;
[0056] (102)统计每条边缘线左、右两侧共线边缘点数目以及Haar特征点数目,并计算共线边缘点数目以及Haar特征点数目分别占总像素点的比例;
[0057] (103)根据步骤(102)中的比例结果,设置边缘线的Haar特征类型HaarType 和共线类型CollinearType;
[0058] (104)根据步骤(101)和步骤(104)分别获得的边界类型borderType, Haar特征类型HaarType以及共线类型CollinearType确定边缘线最终的边缘类型 edgeType;边缘类型edgeType共分为三类,分别为头发区域左线条、头发区域右线条和头发区域中线。
[0059] 优选的是,所述步骤十一中获取图像局部区域内的灰度极值点,并利用其提取图像各个局部区域的头发区域中线的方式为:
[0060] (111)遍历图像所有像素点,对图像上的每一像素点在以其为中心的长为 a、宽为b的区域内作光强度平均,以得到偏重于垂直方向的平滑图像;
[0061] (112)扫描图像的每一像素点,如果此点的强度同时超出左、右两边点的强度加上给定的强度阀值则判定为极大值点max point;如果强度同时低于左、右两边点的强度减去给定的强度阀值则判定为极小值点min point;
[0062] (113)扫描图像上所有极大值点max point并进行连接形成线条;
[0063] (114)扫描图像上所有极小值点min point并进行连接形成线条;
[0064] (115)将上述形成的线条标记为垂直线条,同时如果线条的平均强度是[0065] 在背景光强范围内则同时标记为背景线条,否则标记为前景线条;
[0066] (116)采用同样的方法,重复以上步骤用宽为a、长为b的区域得到横行线条,同时同样根据线条平均光强度标记为背景线条或前景线条;
[0067] (117)上述找到的所有垂直线条和横行线条即为头发区域中线,以此获取图像各个局部区域的头发区域中线。
[0068] 优选的是,所述步骤十二中遍历所有图像头发区域中线,将其两侧相邻的共线边缘线进行连接的方式为:
[0069] (121)遍历图像所有头发区域中线,统计每条头发区域中线两侧相邻的共线边缘线;
[0070] (122)将中线两侧共线边缘线分别进行连接,更新边缘线连接结果。
[0071] 优选的是,所述步骤十三中,获取初始聚类结果的步骤为:
[0072] (131)基于边缘线连接结果获取所有已连接边缘线集合;
[0073] (132)遍历集合中的每个连接边缘线,计算集合中每条边缘线的方向角度,给定角度阈值,若边缘线方向角度小于给定角度阈值则划分为同一类;
[0074] (133)根据边缘线类型,将头发区域中线两侧相邻的左右线条组合划分为同一类,获取初始聚类结果。
[0075] 优选的是,所述步骤十五中计算每根头发的宽度的步骤为:
[0076] (151)获取每根头发区域的左、右边界;
[0077] (152)根据左、右边界上配对的点计算两点间的距离,得到每个头发区域边界上所有点间的距离;
[0078] (153)统计边界点间距离分布直方图,根据直方图计算平均距离作为头发的宽度,以此获取所有头发的宽度。
[0079] 优选的是,所述步骤十六中获取头发宽度分布函数的步骤为:
[0080] (161)统计每根头发的宽度分布直方图,并对直方图归一化获取每根头发的宽度分布函数;
[0081] (162)根据每根头发的宽度分布直方图计算平均宽度作为头发的最终宽度,以此获取所有头发的宽度tki,(i=1,2,...,M),统计所有头发宽度分布直方图;
[0082] (163)不考虑每根头发的宽度分布,对步骤(162)中直方图进行归一化,获取所有头发的宽度分布函数;
[0083] 考虑每根头发的宽度分布,获取所有头发宽度分布函数。
[0084] 优选的是,获取头发宽度分布函数的具体计算步骤为:
[0085] 假设共检测到M个头发区域,计算头发宽度并统计头发宽度分布直方图的具体过程如下:
[0086] (1)给定头发宽度tk,定义分段函数如下:
[0087]
[0088] 其中tki为第i个头发的宽度。
[0089] (2)对第i(i=1,2,...,M)个头发区域,假设该头发边界上共有N个边缘点,利用左右边界上的配对点之间的距离计算头发宽tkj,(j=1,2,...,N),以此获取该头发区域的所有宽度;
[0090] (3)统计每根头发的宽度分布直方图,并对直方图归一化获取每根头发的宽度分布函数:
[0091]
[0092] (4)根据每根头发的宽度分布直方图计算平均宽度作为头发的最终宽度,以此获取所有头发的宽度tki,(i=1,2,...,M),统计所有头发宽度分布直方图;
[0093] (5)不考虑每根头发的宽度分布,对步骤(4)中直方图进行归一化,获取所有头发的宽度分布函数:
[0094]
[0095] (6)考虑每根头发的宽度分布,得到如下的所有头发宽度分布函数:
[0096]
[0097] 一种头发密度检测系统,其特征在于,采用上述任一项一种基于线条聚类的头发密度评估方法,将待检测图像中的头发识别出来,并统计头发数目和宽度,最终计算头发密度,实现头发密度评估。
[0098] 本发明的有益效果为:
[0099] 本发明中,先进行图像背景建模,提取图像背景图和前景图,再计算归一化后图像的积分图,快速获取图像的Haar特征点,同时利用canny边缘检测算法获取图像所有边缘点和边缘线,以此对图像上所有点进行分类,并标记每个点的类型;在获取上述所有关键点之后,遍历图像所有像素点,建立图像上每个点与其上下左右4方向上相邻关键点的关系图,并找到每个线条4方向上相邻的线条,根据4方向关系图判定每个线条与其4方向上相邻线条的连接性,将同属于一条线的所有线条进行连接,以实现线条的初次聚类;然后根据线条的区域信息以及线条4方向上相邻关键点信息对线条进行分类,划分为头发区域左线条,头发区域右线条以及头发区域中央线条三类,并利用图像局部区域内的灰度极值点提取图像各个局部区域的区域中线,遍历所有图像区域中线,将其两侧相邻的共线线条进行连接,更新线条连接结果;基于线条连接结果和线条的类型,将区域中线两侧相邻的左右线条进行聚类,实现线条的第二次聚类;基于上述聚类结果,将每个类别左右的属于同一头发的不同类别再进行合并,获取最终聚类结果;最后给定头发宽度范围,根据聚类结果获取所有头发区域,再确定每个头发区域的最左最右边界,以此获取每根头发的宽度并计算头发密度。本发明提出的算法的核心是线条的聚类方法,通过分析线条间的可连接性,根据线条两侧的区域信息以及线条4方向上的关键点信息对线条进行分类,以及提取图像局部区域中线实现对线条的特殊聚类,以快速有效地识别头发,同时统计头发数目和宽度,实现头发密度评估,本发明的方法可实现对头发生长过程的实时跟踪,快速有效地估计头发密度并将治疗前后头发密度进行对比,为评判医学治疗效果提供有效的依据,在实际医学应用中有着重要的意义。

附图说明

[0100] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据实施例获得其他的附图。
[0101] 图1为图像中所有头发的宽度分布情况,其中横坐标表示头发宽度,纵坐标表示头发数目。
[0102] 图2为某病人经过PRP脱发治疗后头发宽度分布的对比图,其中横坐标表示头发宽度,纵坐标表示头发数目。

具体实施方式

[0103] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0104] 实施例:一种基于线条聚类的头发密度评估方法,包括以下步骤:
[0105] 步骤一:在计算机中输入待检测图像并处理为灰度图像;
[0106] 步骤二:利用直方图进行图像预处理增加图像对比度;
[0107] 步骤三:图像背景建模,以提取图像背景图和前景图,获取图像的区域信息;
[0108] 图像背景建模,以提取图像背景图和前景图的具体过程为:
[0109] 31.在计算机中输入待检测图像并处理为灰度图像;
[0110] 32.统计图像灰度分布直方图;
[0111] 33.获取直方图峰值位置处的图像灰度值,并以该灰度值为中心扩展灰度值范围,直到至少一半的图像像素点灰度值属于当前灰度值范围,得到背景图像的初始灰度值范围(I_low,I_hig);
[0112] 34.将图像分成多个局部小邻域,将每个邻域内灰度值在(I_low,I_hig) 范围内的像素点标记为背景点;
[0113] 35.计算每个局部小邻域内的所有背景点的平均灰度值,代替原来的背景点灰度值,更新所有局部小邻域;
[0114] 36.计算每个局部小邻域周围8邻域内的小邻域均值,获取初始的小邻域的背景图;
[0115] 37.重复步骤35和步骤36两次,获取最终的小邻域背景图;
[0116] 38.将小邻域内像素点的灰度值与其背景图中像素点的灰度值进行比较,将灰度大于背景点灰度的像素点标记为图像亮点,灰度小于背景点灰度的像素点标记为图像暗点,灰度等于背景点灰度的像素点标记为图像背景点;
[0117] 39.基于步骤38获取图像的所有背景点,提取出背景图像并进行归一化处理。
[0118] 步骤四:计算归一化后图像的积分图,以快速获取图像的Haar特征点;
[0119] 步骤五:利用canny边缘检测算法获取待检测图像的所有边缘点和边缘线;
[0120] 具体过程如下:
[0121] 51、在计算机上将待检测图像处理为灰度图像;
[0122] 52、对灰度图像进行高斯模糊以减少图像噪声的干扰;
[0123] 53、计算降噪后的图像中每个像素点的梯度值和方向;
[0124] 54、对每个像素点的梯度值进行非极大值抑制,初步得到图像边缘点集合;
[0125] 55、采用双阈值方法进行边缘连接,剔除虚假边缘,补全边缘缺口,获得更精确的边缘点集合。
[0126] 步骤六:对所有边缘线进行分割,并根据线条长度进行排序,剔除长度小于给定阈值不足以构成头发的线条;
[0127] 对所有边缘线进行分割的具体过程为:
[0128] 61、给定边缘线,计算边缘线起点的方向角度theta1;
[0129] 62、遍历边缘线上的所有边缘点,计算当前边缘点的方向角度theta2;
[0130] 63、计算起点与当前边缘点的方向角度之差theta=theta1-theta2;
[0131] 64、若角度差theta小于给定阈值,则继续遍历边缘线的下一边缘点,否则在当前边缘点处断开,获取分割后的边缘线;
[0132] 65、将当前边缘点标记为新的分割边缘线的起点,继续遍历当前线条上的剩余边缘点,重复步骤2-4获取下一分割边缘线,直至到达边缘线终点;
[0133] 66、对所有边缘线重复上述步骤,获取所有分割边缘线。
[0134] 步骤七:基于上述关键点检测结果,将图像所有像素点进行分类,分为前景背景点,Haar特征点以及canny边缘点,并在图像上标记每个关键点的类型;
[0135] 步骤八:遍历图像所有像素点,建立每个点与其上下左右4方向相邻关键点的关系图,以记录每一点4方向上相邻的边缘点,Haar特征点以及之间的前景点总数;
[0136] 步骤九:基于上述关系图,遍历图像所有线条,找出每条线条上下左右4 方向上相邻的线条并判定线条间的连接性,获取初始线条连接结果;
[0137] 判定线条间的连接性,获取初始线条连接结果的方式为:
[0138] 91、遍历图像所有线条,找出每条线条上下左右4方向相邻的线条;
[0139] 92、每个线条都两个端点,找点与当前线条端点周围4方向上距离最近的线条的端点,并将两终点进行连接形成新的线条;
[0140] 93、计算形成的线条的方向角度及原来两线条的方向角度,比较角度差值,如果差值大于给定阈值,则两线条不能形成同一线条,不能进行连接;否则执行步骤(94);
[0141] 94、比较两线条左右线条,如果两线条共享相同的左右线条,并且与左右线条之间的距离小于给定阈值,则两线条可以合并同一线条,将两线条进行连接,获取初始线条连接结果。
[0142] 步骤十:基于线条上下左右4方向上相邻关键点的信息,将所有线条分为三类,分别为:头发区域左线条,头发区域右线条,头发区域中央线条;
[0143] 线条分类的具体过程为:
[0144] 101、遍历图像所有线条,基于图像区域信息确定线条的边界类型 borderType:若线条左侧为图像背景,右侧为图像前景,则边界类型为左;若线条右侧为图像背景,左侧为图像前景,则边界类型为右;若线条两侧都为图像前景,则边界类型为中央;线条两侧都为图像背景的一定不能构成头发,剔除此类线条;
[0145] 102、统计每条线条左右两侧共线边缘点数目以及Haar特征点数目,并计算共线边缘点数目以及Haar特征点占总点数的比例;
[0146] 103、根据步骤2中的比例结果,设置线条的Haar特征类型HaarType和共线类型CollinearType;
[0147] 104、根据步骤101和步骤104获得的边界类型borderType,Haar特征类型 HaarType以及共线类型CollinearType确定线条最终的边缘类型edgeType;
[0148] 105、边缘类型edgeType共分为三类,分别为头发区域左线条,头发区域右线条,头发区域中央线条。
[0149] 步骤十一:获取图像局部区域内的灰度极值点,并利用其提取图像各个局部区域的区域中线;
[0150] 具体方式为:
[0151] 111、遍历图像所有像素点,对图像上的每一点在以其为中心的长为 10宽为4的区域内作强度平均.以得到偏重于垂直方向的平滑图像;
[0152] 112、扫描图像的每一点,如果此点的强度超出左右两边点的强度加上给定的阀值则判定为极大值点max point;如果强度同时低于左右两边点的强度减去给定的阀值则判定为极小值点min point;
[0153] 113、扫描图像上所有极大值点max point并进行连接形成线条;
[0154] 114、扫描图像上所有极小值点min point并进行连接形成线条;
[0155] 115、将上述形成的线条标记为垂直线条,同时如果线条的平均强度是在背景光强范围内则同时标记为背景线条,否则标记为前景线条;
[0156] 116、采用同样的方法,重复以上步骤用宽为10长为4的区域得到横行线条,同时同样根据线条平均光强标记为背景线条或前景线条;
[0157] 117、上述找到的所有垂直线条和横行线条即为区域中线,以此获取图像各个局部区域的区域中线。
[0158] 步骤十二:遍历所有图像区域中线,将其两侧相邻的共线线条进行连接,更新线条连接结果;
[0159] 具体的线条连接方式为:
[0160] 121、遍历图像所有区域中线,统计每条区域中线两侧相邻的共线线条;
[0161] 122、将中线两侧共线线条分别进行连接,更新线条连接结果。
[0162] 步骤十三:基于线条连接结果,验证线条连接性,并将连接的线条进行聚类,同时根据线条的类型,将区域中线两侧相邻的左右线条进行聚类,获取初始聚类结果;
[0163] 线条聚类的具体过程为:
[0164] 131、基于线条连接结果获取所有已连接线条集合;
[0165] 132、遍历每个连接线条集合,计算集合中每条线条的方向角度,给定角度阈值,若线条方向角度小于给定阈值则划分为同一类;
[0166] 133、根据线条类型,将区域中线两侧相邻的左右线条组合划分为同一类,获取初始聚类结果。
[0167] 步骤十四:基于初始聚类结果,按照每个类别中最长线条的长度将所有类别排序,从包含最长线条的类别开始,遍历所有类别,将每个类别左右的属于同一头发的不同类别进行合并,获取最终聚类结果;
[0168] 步骤十五:基于步骤十四的聚类结果,每个类别即为每根头发,以此获取图像中所有头发区域,确定每个头发区域的最左最右边界,并根据边界间的距离计算每根头发的宽度;
[0169] 计算每根头发的宽度的步骤为:
[0170] 151、获取每个头发区域的左右边界;
[0171] 152、根据左右边界上配对的点计算两点间的距离,得到每个头发区域边界上所有点间的距离;
[0172] 153、统计边界点间距离分布直方图,根据直方图计算平均距离作为头发的宽度,以此获取所有头发的宽度,见图1所示。
[0173] 步骤十六:根据每根头发宽度分布统计所有头发宽度分布直方图,并对直方图归一化获取头发宽度分布函数。
[0174] 具体计算过程如下:
[0175] 假设共检测到M个头发区域,计算头发宽度并统计头发宽度分布直方图的具体过程如下:
[0176] 1、给定头发宽度tk,定义分段函数如下:
[0177]
[0178] 其中tki为第i个头发的宽度。
[0179] 2、对第i(i=1,2,...,M)个头发区域,假设该头发边界上共有N个边缘点,利用左右边界上的配对点之间的距离计算头发宽tkj,(j=1,2,...,N),以此获取该头发区域的所有宽度;
[0180] 3、统计每根头发的宽度分布直方图,并对直方图归一化获取每根头发的宽度分布函数:
[0181]
[0182] 4、根据每根头发的宽度分布直方图计算平均宽度作为头发的最终宽度,以此获取所有头发的宽度tki,(i=1,2,...,M),统计所有头发宽度分布直方图;
[0183] 5、不考虑每根头发的宽度分布,对步骤4中直方图进行归一化,获取所有头发的宽度分布函数:
[0184]
[0185] 6、考虑每根头发的宽度分布,得到如下的所有头发宽度分布函数:
[0186]
[0187] 步骤十七:利用头发数目和头发宽度分布函数估计头发密度,实现头发密度评估。
[0188] 图2为某病人经过PRP脱发治疗后头发宽度分布的对比图,其中带棱形标记点的折线表示治疗前头发宽度分布情况,带正方形标记点的折线表示治疗3 个月后的头发宽度分布情况,从图中可以直观看到头发平均宽度增大,表明经过PRP治疗后头发密度增加,由此可以看出本发明的算法检测结果可以为评价医疗效果提供有效的依据。
[0189] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。