一种纳米线数量统计方法及***
技术领域
本发明涉及图像处理领域,特别是涉及一种纳米线数量统计方法及***。
背景技术
自从Lijima在1991年首次报道了碳纳米线这种一维纳米材料,一维纳米材料就迅速成为专家学者们关注的焦点。随着研究的深入,各类新的纳米线材料都层出不穷。在各种应用中,纳米线的尺寸和密度通常是影响其性能的重要参数。然而,由于它们的高密度和高重叠率,很难准确计算出实际的纳米线数量。从而,很难获得实际的纳米线密度等数据,进而影响分析密度与应用性能的关系。
为了准确获取纳米线的数量,可以利用图像处理技术先识别线状物体,然后计算其特征参数来实现。然而,传统的图像细化算法在这一应用中存在着一些缺陷,例如容易产生大量多余的短线,从而影响纳米线数量统计的准确性。
发明内容
基于此,有必要提供一种纳米线数量统计方法及***,避免大量多余短线的产生,提高纳米线数量统计的准确性。
为实现上述目的,本发明提供了如下方案:
一种纳米线数量统计方法,包括:
获取待统计的纳米线图像;
对所述纳米线图像进行预处理,得到预处理后的图像;
对所述预处理后的图像进行细化,提取纳米线骨架,得到细化后的纳米线图像;
统计所述细化后的纳米线图像中的端点数量和孤立点数量;
识别所述细化后的纳米线图像中的节点;
将节点连通距离小于预设阈值的两个节点合并,将合并处理后的所有节点均标记为合并后节点;
在所述合并后节点中识别邻域包含奇数个前景点的节点,得到奇连接合并后节点的数量;
利用所述端点数量、所述孤立点数量以及所述奇连接合并后节点的数量计算纳米线的数量,计算公式如下:
m=∑(D+Jodd)/2+G
其中m为纳米线的数量,D为端点数量,G为孤立点数量,Jodd为奇连接合并后节点的数量。
可选的,所述对所述纳米线图像进行预处理,得到预处理后的图像,具体包括:
将所述纳米线图像调整为灰度图像;
利用灰度直方图确定所述灰度图像的灰度阈值;
根据所述灰度阈值采用阈值分割方法将所述灰度图像转换成二值图像;
对所述二值图像进行开操作和闭操作,得到所述预处理后的图像。
可选的,所述对所述预处理后的图像进行细化,提取纳米线骨架,得到细化后的纳米线图像,具体包括:
将所述预处理后的图像中的纳米线区域的边缘像素点变为背景像素点,直到剩余的纳米线区域的像素点均为边缘像素点。
可选的,所述统计所述细化后的纳米线图像中的端点数量和孤立点数量,具体包括:
对于一个目标像素点p,当p满足下式时标记为端点:
其中N(p)为目标像素点p的8邻域像素点的像素和;pi为目标像素点p的8邻域像素点,当pi为前景点时pi取值为1,当pi为背景点时pi取值为0;
对于一个目标像素点p,当p满足下式时标记为孤立点:
N(p)=0
统计所述端点的数量和所述孤立点的数量。
可选的,所述识别所述细化后的纳米线图像中的节点,具体包括:
对于一个目标像素点p,当p满足下式时标记为节点:
C4(p)≥3,
或C8(p)≠1且N(p)≥3
p2j-2、p2j-1、p2j均为目标像素点p的8邻域像素点。
一种纳米线数量统计***,包括:
图像获取模块,用于获取待统计的纳米线图像;
预处理模块,用于对所述纳米线图像进行预处理,得到预处理后的图像;
细化模块,用于对所述预处理后的图像进行细化,提取纳米线骨架,得到细化后的纳米线图像;
端点孤立点统计模块,用于统计所述细化后的纳米线图像中的端点数量和孤立点数量;
节点识别模块,用于识别所述细化后的纳米线图像中的节点;
节点合并模块,用于将节点连通距离小于预设阈值的两个节点合并,将合并处理后的所有节点均标记为合并后节点;
奇连接合并后节点统计模块,用于在所述合并后节点中识别邻域包含奇数个前景点的节点,得到奇连接合并后节点的数量;
纳米线数量计算模块,用于利用所述端点数量、所述孤立点数量以及所述奇连接合并后节点的数量计算纳米线的数量,计算公式如下:
m=∑(D+Jodd)/2+G
其中m为纳米线的数量,D为端点数量,G为孤立点数量,Jodd为奇连接合并后节点的数量。
可选的,所述预处理模块包括:
灰度调整单元,用于将所述纳米线图像调整为灰度图像;
灰度阈值确定单元,用于利用灰度直方图确定所述灰度图像的灰度阈值;
二值化单元,用于根据所述灰度阈值采用阈值分割方法将所述灰度图像转换成二值图像;
开闭操作单元,用于对所述二值图像进行开操作和闭操作,得到所述预处理后的图像。
可选的,所述细化模块包括:
细化单元,用于将所述预处理后的图像中的纳米线区域的边缘像素点变为背景像素点,直到剩余的纳米线区域的像素点均为边缘像素点。
可选的,所述端点孤立点统计模块包括:
端点标记单元,用于对于一个目标像素点p,当p满足下式时标记为端点:
其中N(p)为目标像素点p的8邻域像素点的像素和;pi为目标像素点p的8邻域像素点,当pi为前景点时pi取值为1,当pi为背景点时pi取值为0;
孤立点标记单元,用于对于一个目标像素点p,当p满足下式时标记为孤立点:
N(p)=0
端点孤立点统计单元,用于统计所述端点的数量和所述孤立点的数量。
可选的,所述节点识别模块包括:
节点识别单元,用于对于一个目标像素点p,当p满足下式时标记为节点:
C4(p)≥3,
或C8(p)≠1且N(p)≥3
p2j-2、p2j-1、p2j均为目标像素点p的8邻域像素点。
与现有技术相比,本发明的有益效果是:本发明提出了一种纳米线数量统计方法及***,对细化后的纳米线图像统计端点和孤立点,然后识别节点,并将连通距离较近的节点合并,从而能够有效减少多余短线的产生,最后利用端点数量、孤立点数量和奇连接合并后节点的数量计算纳米线的数量,能够有效提高纳米线统计的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1的纳米线数量统计方法的方法流程图;
图2为该实施例1中获取的纳米线图像;
图3为该实施例1中得到的灰度图像;
图4为该实施例1中得到的二值图像;
图5为该实施例1中得到的预处理后的图像;
图6为该实施例1中得到的细化后的纳米线图像;
图7为目标像素点p与8邻域像素点pi的关系图;
图8为本发明实施例1中图6的局部放大图;
图9为图6中某一涵盖图8所示区域的局部放大图;
图10为本发明实施例2的纳米线数量统计***的***结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
图1为本发明实施例1的纳米线数量统计方法的方法流程图。
参见图1,该纳米线数量统计方法,包括:
步骤101:获取待统计的纳米线图像。
图2为该实施例1中获取的纳米线图像。
步骤102:对所述纳米线图像进行预处理,得到预处理后的图像。
该步骤102具体包括:
利用Photoshop软件中曲线调整的方法将所述纳米线图像调整为灰度图像。图3为该实施例1中得到的灰度图像。
利用灰度直方图确定所述灰度图像的灰度阈值。
根据所述灰度阈值采用阈值分割方法将所述灰度图像转换成二值图像。图4为该实施例1中得到的二值图像。
对所述二值图像进行开操作和闭操作,从而去除噪声,得到所述预处理后的图像。图5为该实施例1中得到的预处理后的图像。
步骤103:对所述预处理后的图像进行细化,提取纳米线骨架,得到细化后的纳米线图像。
该步骤103具体包括:
将所述预处理后的图像中的纳米线区域的边缘像素点变为背景像素点,直到剩余的纳米线区域的像素点均为边缘像素点。
细化即使用具有严格单像素宽和旋转不变特性的图像细化算法将图像中白色纳米线区域的边缘像素点变为黑色背景区域,直到所有剩余的纳米线区域的白色像素点均为边缘像素点。图6为该实施例1中得到的细化后的纳米线图像。
具有严格单像素宽的细化算法可以保证统计结果更准确,具有旋转不变特性的图像细化算法可以保证统计结果在图像旋转时保持不变。
步骤104:统计所述细化后的纳米线图像中的端点数量和孤立点数量。
该步骤104具体包括:
对于一个目标像素点p,当p满足下式时标记为端点:
其中N(p)为目标像素点p的8邻域像素点的像素和;pi为目标像素点p的8邻域像素点,图7为目标像素点p与8邻域像素点pi的关系图。当pi为前景点时pi取值为1,当pi为背景点时pi取值为0。
对于一个目标像素点p,当p满足下式时标记为孤立点:
N(p)=0
统计所述端点的数量D和所述孤立点的数量G。
步骤105:识别所述细化后的纳米线图像中的节点。
对于一个目标像素点p,当p满足下式时标记为节点:
C4(p)≥3,
或C8(p)≠1且N(p)≥3
p2j-2、p2j-1、p2j均为目标像素点p的8邻域像素点。
步骤106:将节点连通距离小于预设阈值的两个节点合并,将合并处理后的所有节点均标记为合并后节点。预设阈值W根据实际情况可设定为1~10个像素。
两个节点a和b的连通距离DE定义为:如果在图像骨架中存在L值最小的像素集合{d1,d2,……,dL-1},使得a和d1,任意dk和dk+1,dL-1和b均为8连通关系,则定义L值为两个节点a和b的连通距离DE。
两个节点a和b合并定义为:集合{a,d1,d2,……,dL-1,b}被识别为一个新的包含多个像素的合并节点。
步骤107:在所述合并后节点中识别邻域包含奇数个前景点的节点,得到奇连接合并后节点的数量。
步骤108:利用所述端点数量、所述孤立点数量以及所述奇连接合并后节点的数量计算纳米线的数量,计算公式如下:
m=∑(D+Jodd)/2+G
其中m为纳米线的数量,D为端点数量,G为孤立点数量,Jodd为奇连接合并后节点的数量。
图8为本发明实施例1中图6的局部放大图。图8中节点的距离DE小于预设阈值W,因此被合并为一个大的合并节点。图9为图6中某一涵盖图8所示区域的局部放大图。图9中真实纳米线数量为5根。如果不进行节点合并,则统计结果为(7+5)/2=6根,则出现了统计误差。而在合并之后,统计结果为(7+3)/2=5根,统计正确。
根据本发明的方法对图6中的纳米线进行统计,得到的统计结果为153根。从图2中得到的人眼统计结果为152根,由此可见,本发明的方法可以大大减少统计误差,能够提高纳米线统计的准确度。
实施例2:
图10为本发明实施例2的纳米线数量统计***的***结构图。
参见图10,该纳米线数量统计***,包括:
图像获取模块201,用于获取待统计的纳米线图像;
预处理模块202,用于对所述纳米线图像进行预处理,得到预处理后的图像;
细化模块203,用于对所述预处理后的图像进行细化,提取纳米线骨架,得到细化后的纳米线图像;
端点孤立点统计模块204,用于统计所述细化后的纳米线图像中的端点数量和孤立点数量;
节点识别模块205,用于识别所述细化后的纳米线图像中的节点;
节点合并模块206,用于将节点连通距离小于预设阈值的两个节点合并,将合并处理后的所有节点均标记为合并后节点;
奇连接合并后节点统计模块207,用于在所述合并后节点中识别邻域包含奇数个前景点的节点,得到奇连接合并后节点的数量;
纳米线数量计算模块208,用于利用所述端点数量、所述孤立点数量以及所述奇连接合并后节点的数量计算纳米线的数量,计算公式如下:
m=∑(D+Jodd)/2+G
其中m为纳米线的数量,D为端点数量,G为孤立点数量,Jodd为奇连接合并后节点的数量。
可选的,所述预处理模块202包括:
灰度调整单元,用于将所述纳米线图像调整为灰度图像;
灰度阈值确定单元,用于利用灰度直方图确定所述灰度图像的灰度阈值;
二值化单元,用于根据所述灰度阈值采用阈值分割方法将所述灰度图像转换成二值图像;
开闭操作单元,用于对所述二值图像进行开操作和闭操作,得到所述预处理后的图像。
可选的,所述细化模块203包括:
细化单元,用于将所述预处理后的图像中的纳米线区域的边缘像素点变为背景像素点,直到剩余的纳米线区域的像素点均为边缘像素点。
可选的,所述端点孤立点统计模块204包括:
端点标记单元,用于对于一个目标像素点p,当p满足下式时标记为端点:
其中N(p)为目标像素点p的8邻域像素点的像素和;pi为目标像素点p的8邻域像素点,当pi为前景点时pi取值为1,当pi为背景点时pi取值为0;
孤立点标记单元,用于对于一个目标像素点p,当p满足下式时标记为孤立点:
N(p)=0
端点孤立点统计单元,用于统计所述端点的数量和所述孤立点的数量。
可选的,所述节点识别模块205包括:
节点识别单元,用于对于一个目标像素点p,当p满足下式时标记为节点:
C4(p)≥3,
或C8(p)≠1且N(p)≥3
p2j-2、p2j-1、p2j均为目标像素点p的8邻域像素点。
与现有技术相比,本发明的有益效果是:本发明提出了一种纳米线数量统计方法及***,对细化后的纳米线图像统计端点和孤立点,然后识别节点,并将连通距离较近的节点合并,从而能够有效减少多余短线的产生,最后利用端点数量、孤立点数量和奇连接合并后节点的数量计算纳米线的数量,能够有效提高纳米线统计的准确性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。