一种基于多色级图像连通域的分割和标记方法及装置
技术领域
本发明涉及图像处理技术领域,尤其涉及的是一种基于多色级图像连通域的分割和标记方法及装置。
背景技术
图像连通域标记是数字图像分析处理中常见的环节,图像连通域的标记方法主要有像素扫描即点标记法和线段扫描即线标记法,像素点扫描方式有:顺序扫描法、递归标记法、区城增长法等。线段扫描算法主要有基于跑长码的标记算法、基于游程的标记算法等。这些算法均能基于一定的技术目的准确标记目标连通域,其主要区分点是等价标号的处理不同,但最终的标记号是把等价标号标记为同一标号。
实际应用中,像素点扫描法是最常见的算法,其直观,数据结构简单,易于实现,如专利号为2015107538842的发明专利公开了一种基于投影变换的连通域标记方法,利用投影变换的思想,将一个二维区域分割问题转化为一个一维线段分割问题,将连通域标记问题简单化。
但是,现有技术的图像连通域标记方法,存在的缺陷和弊端:
1、现有技术的图像连通域标记方法大多要多次扫描,损耗大量的运行时间;
2、现有技术的图像连通域标记方法所产生的连通域难以满足多色级图像连通域分析的需要,造成部分色级图像特征描述的遗漏。
因此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种基于多色级图像连通域的分割和标记方法,旨在克服使用传统的方法处理多色级图像连通域的分割和标记时,难以找出为使用者感兴趣的图像连通域的缺陷。
本发明的另一个目的在于提供一种基于多色级图像连通域的分割和标记的装置。
本发明的技术方案如下:一种基于多色级图像连通域的分割和标记方法,其中,包括以下步骤:
对图像进行预处理,使图像分割出二个或以上色级的图像色块;
获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号;
根据像素点数据,分别找出至少两个预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号;
在像素点数据中记录该像素点所在的一条或多条子线段的线段号;
根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号;
在像素点数据中记录该像素点所在的连通域号。
所述的基于多色级图像连通域的分割和标记方法,其中,所述预设方向包括水平向、垂直向、左斜向和右斜向;所述子线段包括水平向线段、垂直向线段、左斜向线段和右斜向线段。
所述的基于多色级图像连通域的分割和标记方法,其中,所述根据像素点数据,分别找出预设方向上连续连接的像素点所构成的连线,得到子线段的步骤包括:
水平向线段的查找和标记:在所获得的图像色块的像素点数据中逐行自首像素点起查询与首像素点色级号相同且在水平向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本行数据是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在水平向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本行数据全部像素点标记线段号完毕;
垂直向线段的查找和标记:在所获得的图像色块的像素点数据中逐列自首像素点起查询与首像素点色级号相同且在垂直向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本列数据是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在垂直向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本列数据全部像素点标记线段号完毕;
左斜向线段的查找和标记:在所获得的图像色块的像素点数据中逐左斜向线自首像素点起查询与首像素点色级号相同且在左斜向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本左斜向线上是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在左斜向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本左斜向线上全部像素点标记线段号完毕;
右斜向线段的查找和标记:在所获得的图像色块的像素点数据中逐右斜向线自首像素点起查询与首像素点色级号相同且在右斜向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本右斜向线上是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在右斜向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本右斜向线上全部像素点标记线段号完毕。
所述的基于多色级图像连通域的分割和标记方法,其中,所述首像素点为需要查询的当前方向上首个色级号不为“0”和/或不为空值的像素点。
所述的基于多色级图像连通域的分割和标记方法,其中,所述预设连通域组合规则包括:
1)按顺序检查各色级图像的子线段与子线段之间数据,同一像素点含有二个及多个不同方向线段号,将该线段号的像素点标记为同一连通域;
2)完成上述检查后,将未能标记连通域号的同一方向线段号相同的所有像素点标记为同一连通域;
3)子线段与子线段之间不存在交集时,每一子线段视为一个连通域;
4)每一点线段视为一个连通域。
所述的基于多色级图像连通域的分割和标记方法,其中,所述根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号的步骤包括:
按照预设的方向顺序以及线段号的顺序进行线段号检查,再过滤查询该线段号所对应的像素点数据是否存在别的线段号,得到本检查的线段号和命中的线段号,将命中全部线段号所对应的所有像素点标记为同一连通域号;
检查各预设方向未标记连通域号的最小值的线段号为查询首条件,在此条件下过滤查询该线段号下的像素点是否存在别的线段号,得到本检查的线段号和命中的线段号,将命中全部线段号所对应的所有像素点标记为同一连通域,并记录新的连通域号;
重复以上步骤,直至所有预设方向的线段号所对应的像素点均标记有连通域号。
所述的基于多色级图像连通域的分割和标记方法,其中,还包括对各子线段的起点和止点进行标记,具体步骤如下:
水平向线段的起止点查找和标记:比较同一线段号所对应的所有像素点数据的像素点列号,找出像素点列号最小的像素点并标记为该子线段的起点,找出像素点列号最大的像素点并标记为该子线段的止点;
垂直向线段的起止点查找和标记:比较同一线段号所对应的所有像素点数据的像素点行号,找出像素点行号最小的像素点并标记为该子线段的起点,找出像素点行号最大的像素点并标记为该子线段的止点;
左斜向线段的起止点查找和标记:比较同一线段号所对应的所有像素点数据的像素点行号或列号,找出像素点行号或列号最小的像素点并标记为该子线段的起点,找出像素点行号或列号最大的像素点并标记为该子线段的止点;
右斜向线段的起止点查找和标记:比较同一线段号所对应的所有像素点数据的像素点行号或列号,找出像素点行号最小或列号最大的像素点并标记为该子线段的起点,找出像素点行号最大或列号最小的像素点并标记为该子线段的止点。
所述的基于多色级图像连通域的分割和标记方法,其中,还包括获取所述连通域轮廓数据,具体包括:
获取同一连通域的水平向、垂直向、左斜向和右斜向四个方向所对应的所有子线段的起止点数据,得到连通域轮廓数据。
所述的基于多色级图像连通域的分割和标记方法,其中,还包括对图像连通域标记修正步骤,具体包括:
对连通域进行如下检查,对满足检查条件的连通域标记进行修正;
设置检查条件:A、同一连通域号所对应的像素点数量小于预设的连通域像素点数量;B、连通域号仅对应一个线段号;C、同一连通域号对应的互为900的不同方向的子线段存在两个及以上且该子线段的相交像素点数小于4个像素点,或连通域号对应两个或以上的相互垂直相交的线段号,但其中相同方向的子线段之间的间距均大于1个像素点距离;
根据检查条件,按照连通域号顺序进行检查,将符合检查条件的连通域号所对应的像素点标记为散点,并记录同一散点号;
根据检查条件,检查下一序号的连通域号,将符合检查条件的连通域号所对应的像素点标记为散点,并记录相同的新的散点号;
重复检查直到所有连通域号均检查完毕;
计算每一标记散点号的连通域与相接连通域的色级灰度值差;
将标记散点号的连通域所对应的像素点的色级号或色级灰度值置换为色级灰度值差最小值所对应的相接连通域的色级号或色级灰度值。
所述的基于多色级图像连通域的分割和标记方法,其中,根据所述检查条件C进行检查,具体步骤如下:
检查同一连通域中是否存在同一方向的两个及以上子线段;
若是,则再检查该同方向的子线段上所对应的像素点是否存在两个及以上与该子线段互为900的不同方向的子线段;
若是,则再检查该互为900相交的子线段的相交像素点数是否小于4个像素点,或判断该连通域号对应两个或以上的相互垂直相交的线段号,但其中相同方向的子线段之间的间距是否大于1个像素点。
本发明还公开了一种基于多色级图像连通域的分割和标记装置,其中,包括:
预处理模块,对图像进行预处理,使图像分割出二个或以上色级的图像色块;
像素点数据获取模块,与所述预处理模块连接,获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号;
子线段查找模块,与所述像素点数据获取模块连接,根据像素点数据,分别找出至少两个预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号;
第一记录模块,与所述子线段查找模块和所述像素点数据获取模块连接,将像素点所在的一条或多条子线段的线段号记录在该像素点数据中;
连通域查找模块,与子线段查找模块连接,根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号;
第二记录模块,与所述连通域查找模块和所述像素点数据获取模块连接,将像素点所在的连通域的连通域号记录在像素点数据中。
所述的基于多色级图像连通域的分割和标记装置,其中,所述预设方向包括水平向、垂直向、左斜向和右斜向;所述子线段包括水平向线段、垂直向线段、左斜向线段和右斜向线段。
所述的基于多色级图像连通域的分割和标记装置,其中,所述子线段查找模块包括:
对水平向线段进行查找和标记的水平向线段查找和标记模块、对垂直向线段进行查找和标记的垂直向线段查找和标记模块、对左斜向线段进行查找和标记的左斜向线段查找和标记模块和对右斜向线段进行查找和标记的右斜向线段查找和标记模块。
所述的基于多色级图像连通域的分割和标记装置,其中,还包括对各子线段的起点和止点进行标记的起止点标记模块,所述起止点标记模块与所述子线段查找模块连接,所述起止点标记模块包括:
对水平向线段的起止点进行查找和标记的水平起止点标记子模块、对垂直向线段的起止点进行查找和标记的垂直起止点标记子模块、对左斜向线段的起止点进行查找和标记的左斜起止点标记子模块和对右斜向线段的起止点进行查找和标记的右斜起止点标记子模块。
所述的基于多色级图像连通域的分割和标记装置,其中,还包括连通域轮廓获取模块,所述连通域轮廓获取模块与所述起止点标记模块连接,用于获取同一连通域的水平向、垂直向、左斜向和右斜向四个方向所对应的所有子线段的起止点数据,得到连通域轮廓数据。
所述的基于多色级图像连通域的分割和标记装置,其中,还包括对图像散点进行检查标记的连通域标记修正模块,所述连通域标记修正模块与所述像素点数据获取模块和所述连通域查找模块连接,所述连通域标记修正模块包括:
条件设置子模块,用于设置检查条件:A、同一连通域号所对应的像素点数量小于预设的连通域像素点数量;B、连通域号仅对应一个线段号;C、同一连通域号对应的互为900的不同方向的子线段存在两个及以上且该子线段的相交像素点数小于4个像素点,或连通域号对应两个或以上的相互垂直相交的线段号,但其中相同方向的子线段之间的间距均大于1个像素点距离;
检查子模块,与所述条件设置子模块连接,用于根据检查条件进行检查,并将符合检查条件的连通域号所对应的像素点标记为散点,并记录同一散点号,直到所有连通域号均检查完毕;
计算模块,与所述检查子模块连接,用于计算每一标记散点号的连通域与相接连通域的色级灰度值差;
置换模块,与所述检查子模块和所述计算模块连接,用于将标记散点号的连通域所对应的像素点的色级号或色级灰度值置换为色级灰度值差最小值所对应的相接连通域的色级号或色级灰度值。
本发明的有益效果:
1、采用本技术方案的基于多色级图像连通域的分割和标记方法和装置能有效解决输入图像存在多色级图像色块的复杂情况时连通域划分不准确而不能完整反映图像的色级层次特征的难题,本方法所获得的连通域能清晰反映图像的色级层次特征,易找出使用者感兴趣的图像连通域。
、采用本技术方案的基于多色级图像连通域的分割方法和装置能实现图像按色块和色块连通域进行分割,便于更广地满足图像分析的需要。
、采用本技术方案的基于多色级图像连通域的分割和标记方法和装置,能有效提高图像连通域分割和标记的处理效率。
附图说明
图1是实施例1的基于多色级图像连通域的分割和标记方法的流程图。
图2是待处理图像。
图3是对图像进行预处理后分割出的图像色块。
图4是局部像素点归入图像色块的数据示意图。
图5是实施例中水平向线段线段号及端点标记示意图。
图6是实施例中垂直向线段线段号及端点标记示意图。
图7是实施例中左斜向线段线段号及端点标记示意图。
图8是实施例中右斜向线段线段号及端点标记示意图。
图9是利用本发明的方法对图像连通域进行划分和标号的示意图。
图10是实施例2的基于多色级图像连通域的分割和标记方法的流程图。
图11是实施例3的基于多色级图像连通域的分割和标记方法的流程图。
图12是实施例4的基于多色级图像连通域的分割和标记装置的模块框图。
图13是实施例5的基于多色级图像连通域的分割和标记装置的模块框图。
图14是实施例6的基于多色级图像连通域的分割和标记装置的模块框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。
为解决传统的图像连通域标记方法所存在的问题,本发明提出一种应用于多色级图像的新的连通域分割和标记方法,主要是通过将待处理的图像分割形成多个色级的图像色块,然后获取这些图像色块的像素点数据,并且根据像素点数据标记处子线段,然后根据子线段之间的关联性找出连通域并进行标记。采用本技术方案的基于多色级图像连通域的分割和标记方法和装置,能有效提高图像连通域分割和标记的处理效率,并且本方法所获得的连通域能清晰反映图像的色级层次特征,易找出使用者感兴趣的图像连通域。以下列举实施例对本发明进行详细的说明。
实施例1
本实施例公开一种基于多色级图像连通域的分割和标记方法,如图1所示,包括以下步骤:
S100、对图像进行预处理,使图像分割出二个或以上色级的图像色块。
通过电脑设备、摄像功能的手机、照相机、摄像头或集合有摄像头或存储图像的其他设备所获取的图像均可作为本发明的输入图像。
图像预处理具体包括提取输入图像像素点的灰度值,计算多色级的二值化自适应阈值,使图像分割出二个或以上色级的图像色块。其中,二值化自适应阈值的计算方式可以采用专利号为201610943723.4的《一种动态计算多色级二值化自适应阈值的方法及其系统》的技术方法。
参见图2,为本实施例需要处理的图像,该图像经过步骤S100处理后,得到四个图像色块,参见图3,从左到右分别为第四色块、第三色块、第二色块,另省略了第一色块,其中第一色块为背景色白色。
当然,实际应用中,还可以通过其他预处理方式使图像分割出二个或以上色级的图像色块,本发明并不限定只使用本实施例的实施方式。
、获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号。
参见图4,局部像素点归入第四色级的图像色块的数据示意图。图中每一个方框格子表达一个像素点,方框格子中的数字代表色级号(即归属于哪一个色块,图4中为第四色块的局部像素点数据图),空白的格子表示非本色级的像素点,空白的格子的色级号为“0”,方框格子外竖直排列的数字代表行号、水平排列的数字代表列号,用于标记每一个像素点的坐标。
、根据像素点数据,分别找出预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号。
根据不同的连接方向,连续连接的像素点所构成的连线可以很多条,如按3600每一度的连接方向,可获得至少360条不同方向的线段。
实际应用中,为了确保结果的准确性,优选地,预设方向一般可选取水平向、垂直向、左斜向和右斜向,需要按照预设方向进行连续连接的像素点所构成的连线查找,获取具体包括水平向、垂直向、左斜向和右斜向的连线,每一方向上的连线包含若干子线段,对应的,子线段包括水平向线段、垂直向线段、左斜向线段和右斜向线段。通过设置四个预设方向,使任意一像素点的相邻的8个像素点数据均得到查询,不会造成遗漏,保证结果的准确性。
具体的,子线段的查找和标记具体包括:
水平向线段的查找和标记(参见图5):在所获得的图像色块的像素点数据中逐行自首像素点起查询与首像素点色级号相同且在水平向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本行数据是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在水平向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本行数据全部像素点标记线段号完毕。
垂直向线段的查找和标记(参见图6):在所获得的图像色块的像素点数据中逐列自首像素点起查询与首像素点色级号相同且在垂直向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本列数据是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在垂直向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本列数据全部像素点标记线段号完毕。
左斜向线段的查找和标记(参见图7):在所获得的图像色块的像素点数据中逐左斜向线自首像素点起查询与首像素点色级号相同且在左斜向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本左斜向线上是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在左斜向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本左斜向线上全部像素点标记线段号完毕。
右斜向线段的查找和标记(参见图8):在所获得的图像色块的像素点数据中逐右斜向线自首像素点起查询与首像素点色级号相同且在右斜向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本右斜向线上是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在右斜向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本右斜向线上全部像素点标记线段号完毕。
其中,首像素点为需要查询的当前方向上首个色级号不为“0”的像素点。如图5中,首像素点为行号为45、列号为54的像素点;图6中,首像素点为行号为4、列号为76的像素点。
实际应用中,对子线段的标号可以根据预设的方向结合序号进行标记,例如参见图5,方向为水平向,则子线段可以根据查询的先后顺序标记为1号水平线段、2号水平线段和3号水平线段;又如参见图6,方向为垂直向,则子线段可以根据查询的先后顺序标记为1号垂直线段、2号垂直线段和3号垂直线段。本发明并不限定子线段的标记规则,只要是可以对每一条子线段进行区分标记归类的方法均可以应用于本发明。
另外,虽然本实施例公开了采用像素点的色级号对子线段进行查找,但是实际应用中,也可以与色级号相关的像素点信息根据与本实施例相同的查询方式对子线段进行查找,例如可以采用像素点的中心灰度值替代色级号。
、在像素点数据中记录该像素点所在的一条或多条子线段的线段号。通过将线段号与相关的像素点进行对应,实现可以通过线段号查找像素点集合,实现对像素点集合进行组合和归类,得到连通域。
、根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号。
实际应用中,预设连通域组合规则具体包括:
1)按顺序检查各色级图像的子线段与子线段之间数据,同一像素点含有二个及多个不同方向线段号,将该线段号的像素点标记为同一连通域。
)完成上述检查后,将未能标记连通域号的同一方向线段号相同的所有像素点标记为同一连通域。
)子线段与子线段之间不存在交集时,每一子线段视为一个连通域。对于某一子线段,该子线段与其他子线段不存在交集(即该子线段所对应的各像素点数据中,只存在一个线段号),此时,该子线段视为一个连通域。
)每一点线段视为一个连通域。该点线段是指孤立的一个像素点,该像素点不与其他像素点连接,此时该像素点可以看做是一个子线段,并且该像素点视为一个连通域。
步骤S500具体包括:
S510、按照预设的方向顺序以及线段号的顺序进行线段号检查,再过滤查询该线段号所对应的像素点数据是否存在别的线段号,得到本检查的线段号和命中的线段号,将命中全部线段号所对应的所有像素点标记为同一连通域号。由于从四个方向对子线段进行查询,因此同一个像素点可能属于不同的子线段,即同一个像素点可能对应多个线段号。通过这些含有至少两个线段号的像素点可以查找得到具有关联性的线段号集,通过这个具有关联性的线段号集即可查找得到该线段号集中每一个线段号所包含的像素点(即均有关联性的像素点集),即找到了连通域。
、检查各预设方向未标记连通域号的最小值的线段号为查询首条件,在此条件下过滤查询该线段号下的像素点是否存在别的线段号,得到本检查的线段号和命中的线段号,将命中全部线段号所对应的所有像素点标记为同一连通域,并记录新的连通域号。
、重复以上步骤,直至所有预设方向的线段号所对应的像素点均标记有连通域号。
参见图9,通过对不同的图像色块使用本发明的连通域查找标记方法,可以得到每一个图像色块的连通域。其连通域的标记方式可以根据图像色块结合序号进行标记,如图9中,第二色块第1连通域、第二色块第2连通域等。
、在像素点数据中记录该像素点所在的连通域号。
本实施例公开了一种基于多色级图像连通域的分割和标记方法,实现图像按色块和色块连通域进行分割,便于更广地满足图像分析的需要。
实施例2
本实施例公开的基于多色级图像连通域的分割和标记方法,如图10所示,包括以下步骤:
S100、对图像进行预处理,使图像分割出二个或以上色级的图像色块。
、获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号。
、根据像素点数据,分别找出预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号。
、在像素点数据中记录该像素点所在的一条或多条子线段的线段号。通过将线段号与相关的像素点进行对应,实现可以通过线段号查找像素点集合,实现对像素点集合进行组合和归类,得到连通域。
、对各子线段的起点和止点进行标记。
、根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号。
、在像素点数据中记录该像素点所在的连通域号。
、获取所述连通域的轮廓数据。
本实施例中,步骤S100、S200、S300、S400、S500和S600基本与实施例1一致,在此不再进行赘述。
本实施例中,步骤S410、对各子线段的起点和止点进行标记,具体包括:
水平向线段的起止点查找和标记(参见图5):比较同一线段号所对应的所有像素点数据的像素点列号,找出像素点列号最小的像素点并标记为该子线段的起点,找出像素点列号最大的像素点并标记为该子线段的止点。
垂直向线段的起止点查找和标记(参见图6):比较同一线段号所对应的所有像素点数据的像素点行号,找出像素点行号最小的像素点并标记为该子线段的起点,找出像素点行号最大的像素点并标记为该子线段的止点。
左斜向线段的起止点查找和标记(参见图7):比较同一线段号所对应的所有像素点数据的像素点行号或列号,找出像素点行号或列号最小的像素点并标记为该子线段的起点,找出像素点行号或列号最大的像素点并标记为该子线段的止点。
右斜向线段的起止点查找和标记(参见图8):比较同一线段号所对应的所有像素点数据的像素点行号或列号,找出像素点行号最小或列号最大的像素点并标记为该子线段的起点,找出像素点行号最大或列号最小的像素点并标记为该子线段的止点。
实际应用中,子线段起止点的查找标记方式有多种,例如可以通过比较同一预设方向上前后两个像素点的色级号,则可以找出子线段的起止点,具体为:若当前像素点的色级号大于同一预设方向的前一像素点的色级号,等于后一像素点的色级号,则该当前像素点为该子线段的起点;若当前像素点的色级号等于同一预设方向的前一像素点的色级号,大于后一像素点的色级号,则该当前像素点为该子线段的止点。本发明并不限定子线段起止点的查找标记方式,凡是可以实现对本发明子线段的起止点进行查找和标记的方式均属于本发明的保护范围。
步骤S610、获取所述连通域的轮廓数据,具体包括:
获取同一连通域的水平向、垂直向、左斜向和右斜向四个方向所对应的所有子线段的起止点数据,得到连通域轮廓数据。
本实施例通过对子线段的起止点进行标记,并且将各子线段的起止点数据进行归集,得到连通域的轮廓数据,使用户更加容易找出想要的图像。
实施例3
本实施例公开的基于多色级图像连通域的分割和标记方法,如图11所示,包括以下步骤:
S100、对图像进行预处理,使图像分割出二个或以上色级的图像色块。
、获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号。
、根据像素点数据,分别找出预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号。
、在像素点数据中记录该像素点所在的一条或多条子线段的线段号。通过将线段号与相关的像素点进行对应,实现可以通过线段号查找像素点集合,实现对像素点集合进行组合和归类,得到连通域。
、根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号。
、在像素点数据中记录该像素点所在的连通域号。
、对图像连通域标记修正。
、获取修正后的连通域数据。
本实施例中,步骤S100、S200、S300、S400、S500和S600基本与实施例1一致,在此不再进行赘述。
本实施例中,步骤S700具体包括:对连通域进行如下检查,对满足检查条件的连通域标记进行修正。
、设置检查条件:A、同一连通域号所对应的像素点数量小于预设的连通域像素点数量;B、连通域号仅对应一个线段号;C、同一连通域号对应的互为900的不同方向的子线段存在两个及以上且该子线段的相交像素点数小于4个像素点,或连通域号对应两个或以上的相互垂直相交的线段号,但其中相同方向的子线段之间的间距均大于1个像素点距离。
、根据检查条件,按照连通域号顺序进行检查,将符合检查条件的连通域号所对应的像素点标记为散点,并记录同一散点号。
、根据检查条件,检查下一序号的连通域号,将符合检查条件的连通域号所对应的像素点标记为散点,并记录相同的新的散点号。
、重复检查直到所有连通域号均检查完毕。
、计算每一标记散点号的连通域与相接连通域的色级灰度值差;
S760、将标记散点号的连通域所对应的像素点的色级号或色级灰度值置换为色级灰度值差最小值所对应的相接连通域的色级号或色级灰度值。其中,根据检查条件C进行检查,具体步骤如下:
检查同一连通域中是否存在同一方向的两个及以上子线段;
若是,则再检查该同方向的子线段上所对应的像素点是否存在两个及以上与该子线段互为900的不同方向的子线段;
若是,则再检查该互为900相交的子线段的相交像素点数是否小于4个像素点,或判断该连通域号对应两个或以上的相互垂直相交的线段号,但其中相同方向的子线段之间的间距是否大于1个像素点。
其中,步骤S750所述计算每一标记散点号的连通域与相接连通域的色级灰度值差取绝对值。
本实施例增加了对图像连通域标记修正的步骤,使对图像连通域的标记结果更加准确,使用户更加容易找出想要的图像。
实施例4
本实施例公开了一种基于多色级图像连通域的分割和标记装置,参见图12,包括:
预处理模块100,用于对图像进行预处理,使图像分割出二个或以上色级的图像色块。
像素点数据获取模块200,用于与所述预处理模块100连接,获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号。
子线段查找模块300,与所述像素点数据获取模块200连接,根据像素点数据,分别找出至少两个预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号。实际应用中,预设方向包括水平向、垂直向、左斜向和右斜向;所述子线段包括水平向线段、垂直向线段、左斜向线段和右斜向线段。子线段查找模块300从像素点数据获取模块200中获取像素点数据,并在所获得的图像色块的像素点数据中按照预设方向(分别为水平向、垂直向、左斜向和右斜向)自首像素点起查询与首像素点色级号相同且在预设方向相接连通的像素点记录,命中记录的像素点视为同一子线段并记录同一线段号;判断某一线段后再检查本行数据是否还有未标记线段号的像素点,如有,自未标记的首像素点查询与该首像素点色级号相同且在水平向相接连通的像素点记录,命中记录的点视为同一子线段并记录新的线段号;类推,直至本行数据全部像素点标记线段号完毕。具体的,子线段查找模块300包括对水平向线段进行查找和标记的水平向线段查找和标记模块310、对垂直向线段进行查找和标记的垂直向线段查找和标记模块320、对左斜向线段进行查找和标记的左斜向线段查找和标记模块330和对右斜向线段进行查找和标记的右斜向线段查找和标记模块340。
第一记录模块400,与所述子线段查找模块300和所述像素点数据获取模块200连接,获取子线段查找模块300所查找得到的子线段的线段号,将像素点所在的一条或多条子线段的线段号记录在该像素点数据中。
连通域查找模块500,与子线段查找模块300连接,获取子线段查找模块300所查找得到的子线段的线段号以及与该线段号对应的像素点,根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号。具体为:按照预设的方向顺序以及线段号的顺序进行线段号检查,再过滤查询该线段号所对应的像素点数据是否存在别的线段号,得到本检查的线段号和命中的线段号,将命中全部线段号所对应的所有像素点标记为同一连通域号(由于从四个方向对子线段进行查询,因此同一个像素点可能属于不同的子线段,即同一个像素点可能对应多个线段号。通过这些含有至少两个线段号的像素点可以查找得到具有关联性的线段号集,通过这个具有关联性的线段号集即可查找得到该线段号集中每一个线段号所包含的像素点,即找到了连通域);继续检查各预设方向未标记连通域号的最小值的线段号为查询首条件,在此条件下过滤查询该线段号下的像素点是否存在别的线段号,得到本检查的线段号和命中的线段号,将命中全部线段号所对应的所有像素点标记为同一连通域,并记录新的连通域号;直至所有预设方向的线段号所对应的像素点均标记有连通域号。
第二记录模块600,与所述连通域查找模块500和所述像素点数据获取模块200连接,将像素点所在的连通域的连通域号记录在像素点数据中。
本实施例所公开的基于多色级图像连通域的分割和标记装置,通过将图像分割出二个或以上色级的图像色块,并且根据每个图像色块的像素点数据,找出子线段,并且利用线段号对像素点数据进行标记,通过含有至少两个线段号的像素点可以查找得到具有关联性的线段号集,通过这个具有关联性的线段号集即可查找得到该线段号集中每一个线段号所包含的像素点(即均有关联性的像素点集),即找到了连通域。
本实施例提出的装置可以快速准确的对多色级图像连通域进行查找和标记,便于用户根据图像的连通域号快速找到想要查找的图像。
实施例5
本实施例公开了一种基于多色级图像连通域的分割和标记装置,参见图13,包括:
预处理模块100,用于对图像进行预处理,使图像分割出二个或以上色级的图像色块。
像素点数据获取模块200,用于与所述预处理模块100连接,获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号。
子线段查找模块300,与所述像素点数据获取模块200连接,根据像素点数据,分别找出至少两个预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号。实际应用中,预设方向包括水平向、垂直向、左斜向和右斜向;所述子线段包括水平向线段、垂直向线段、左斜向线段和右斜向线段。具体的,子线段查找模块300包括对水平向线段进行查找和标记的水平向线段查找和标记模块310、对垂直向线段进行查找和标记的垂直向线段查找和标记模块320、对左斜向线段进行查找和标记的左斜向线段查找和标记模块330和对右斜向线段进行查找和标记的右斜向线段查找和标记模块340。
第一记录模块400,与所述子线段查找模块300和所述像素点数据获取模块200连接,将像素点所在的一条或多条子线段的线段号记录在该像素点数据中。
连通域查找模块500,与子线段查找模块300连接,根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号。
第二记录模块600,与所述连通域查找模块500和所述像素点数据获取模块200连接,将像素点所在的连通域的连通域号记录在像素点数据中。
起止点标记模块700,与所述子线段查找模块300连接,对各子线段的起点和止点进行标记。具体的,起止点标记模块700包括:对水平向线段的起止点进行查找和标记的水平起止点标记子模块710、对垂直向线段的起止点进行查找和标记的垂直起止点标记子模块720、对左斜向线段的起止点进行查找和标记的左斜起止点标记子模块730和对右斜向线段的起止点进行查找和标记的右斜起止点标记子模块740。
连通域轮廓获取模块800,与起止点标记模块700连接,用于获取同一连通域的水平向、垂直向、左斜向和右斜向四个方向所对应的所有子线段的起止点数据,得到连通域轮廓数据。
本实施例的预处理模块100、像素点数据获取模块200、子线段查找模块300、第一记录模块400、连通域查找模块500和第二记录模块600的工作方式与实施例4相同。进一步,本实施例的装置还设置起止点标记模块700和连通域轮廓获取模块800以获取连通域的轮廓数据,进一步快速准确的对图像连通域进行查找和标记,便于用户根据图像的连通域号快速找到想要查找的图像。
实施例6
本实施例公开了一种基于多色级图像连通域的分割和标记装置,参见图14,包括:
预处理模块100,用于对图像进行预处理,使图像分割出二个或以上色级的图像色块。
像素点数据获取模块200,用于与所述预处理模块100连接,获取各色级图像色块的像素点数据,所述像素点数据包括色级号或色级灰度值、像素点行号和像素点列号。
子线段查找模块300,与所述像素点数据获取模块200连接,根据像素点数据,分别找出至少两个预设方向上连续连接的像素点所构成的连线,得到子线段,并对子线段进行标号。实际应用中,预设方向包括水平向、垂直向、左斜向和右斜向;所述子线段包括水平向线段、垂直向线段、左斜向线段和右斜向线段。具体的,子线段查找模块300包括对水平向线段进行查找和标记的水平向线段查找和标记模块310、对垂直向线段进行查找和标记的垂直向线段查找和标记模块320、对左斜向线段进行查找和标记的左斜向线段查找和标记模块330和对右斜向线段进行查找和标记的右斜向线段查找和标记模块340。
第一记录模块400,与所述子线段查找模块300和所述像素点数据获取模块200连接,将像素点所在的一条或多条子线段的线段号记录在该像素点数据中。
连通域查找模块500,与子线段查找模块300连接,根据预设连通域组合规则对线段号进行组合,将所组合的线段号下属的像素点集合视为同一连通域,并对该连通域进行色级归类和编号。
第二记录模块600,与所述连通域查找模块500和所述像素点数据获取模块200连接,将像素点所在的连通域的连通域号记录在像素点数据中。
连通域标记修正模块900,与像素点数据获取模块200和所述连通域查找模块500连接,用于对图像散点进行检查标记。具体包括:
条件设置子模块910,用于设置检查条件:A、同一连通域号所对应的像素点数量小于预设的连通域像素点数量;B、连通域号仅对应一个线段号;C、同一连通域号对应的互为900的不同方向的子线段存在两个及以上且该子线段的相交像素点数小于4个像素点,或连通域号对应两个或以上的相互垂直相交的线段号,但其中相同方向的子线段之间的间距均大于1个像素点距离。
检查子模块920,与所述条件设置子模块连接,用于根据检查条件进行检查,并将符合检查条件的连通域号所对应的像素点标记为散点,并记录同一散点号,直到所有连通域号均检查完毕。
计算模块930,与所述检查子模块连接,用于计算每一标记散点号的连通域与相接连通域的色级灰度值差。
置换模块940,与所述检查子模块和所述计算模块连接,用于将标记散点号的连通域所对应的像素点的色级号或色级灰度值置换为色级灰度值差最小值所对应的相接连通域的色级号或色级灰度值。
本实施例的预处理模块100、像素点数据获取模块200、子线段查找模块300、第一记录模块400、连通域查找模块500和第二记录模块600的工作方式与实施例4相同。本实施例还设置连通域标记修正模块900对图像连通域标记修正,进一步提高图像连通域查找标记的准确性,便于用户根据图像的连通域号快速找到想要查找的图像。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。