CN107622517B - 一种单连通的任意多边形区域填充方法及系统 - Google Patents

一种单连通的任意多边形区域填充方法及系统 Download PDF

Info

Publication number
CN107622517B
CN107622517B CN201710674719.7A CN201710674719A CN107622517B CN 107622517 B CN107622517 B CN 107622517B CN 201710674719 A CN201710674719 A CN 201710674719A CN 107622517 B CN107622517 B CN 107622517B
Authority
CN
China
Prior art keywords
filling
polygon
color
point
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710674719.7A
Other languages
English (en)
Other versions
CN107622517A (zh
Inventor
郑晟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huzhou Yinglie Intellectual Property Operation Co ltd
Original Assignee
Taizhou Jiji Intellectual Property Operation Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taizhou Jiji Intellectual Property Operation Co ltd filed Critical Taizhou Jiji Intellectual Property Operation Co ltd
Priority to CN201710674719.7A priority Critical patent/CN107622517B/zh
Publication of CN107622517A publication Critical patent/CN107622517A/zh
Application granted granted Critical
Publication of CN107622517B publication Critical patent/CN107622517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明涉及图形处理技术领域,具体为一种单连通的任意多边形区域填充方法及系统,按如下步骤进行:步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;步骤S2,对所述外接凸包络进行填色,处理简单又效率高。

Description

一种单连通的任意多边形区域填充方法及系统
技术领域
本发明涉及图形处理技术领域,具体为一种单连通的任意多边形区域填充方法及系统。
背景技术
多边形的区域填充算法,目前基本分为两类:一类是扫描线算法(Scan-LineFilling)。这类算法建立在多边形边边界的矢量形式数据之上,可用于程序填色,也可用交互填色,算法的基本思路是通过水平的扫描线,与多边形区域求交,将属于区域内部的线段着色,针对凹多边形,要区分多边形内外,为了减少扫描线与多边形各边求交的次数,发展了使用边表(ET)和活动边表(AET)的快速算法;另一类是种子填色(Seed Filling)算法。这类算法建立在多边形边边界的图象形式数据之上,并还需提供多边形界内一点的坐标。所以,它一般只能用于人机交互填色,而难以用于程序填色。从种子点开始,使用四连通或八连通区域,搜索周边像素点,并进行着色,其中四个方向搜索算法,有一定的局限。针对下列八连通区域,不能充分着色,扫描线算法处理速度快,但是针对凹多边形的情况,稍微显得复杂。种子点算法效率要低一些,且如果着色区域很大是,压缩堆栈的点数目增长很快,容易导致堆栈溢出。
现有很多相关的技术存在,如公开号为102376099A的专利公开了一种改善矢量图形填充效果的方法,其包括下述步骤:1)基于扫描线而检测所述矢量图形中是否存在待弥补区域;2)基于丢点笔划表而判断所存在的待弥补区域是否为交点凹陷,并对确认为交点凹陷的待弥补区域进行填充,还提供一种改善矢量图形填充效果的系统,且提供的系统和方法能够消除因交点凹陷而带来的各种图形畸变,从而大大改善低分辨率下的诸如矢量字形的矢量图形的填充效果,并使文字/图形的可辨识度得到提升,但是这种方式同样存在上述的缺陷,处理起来不够简单,效率也较低。
发明内容
本发明的一个目的是提供一种处理简单又效率高的单连通的任意多边形区域填充方法及系统。
本发明的上述技术目的是通过以下技术方案得以实现的:
一种单连通的任意多边形区域填充方法,按如下步骤进行:
步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;
步骤S2,对所述外接凸包络进行填色。
作为对本发明的优选,在对步骤S1中的凹角进行填补之前,判断所述原始多边形是否存在自交边,若存在自交边,则将自交点作为新的顶点并将所述原始多边形分裂成若干子原始多边形,然后对子原始多边形分别进行凹角的填补,形成若干与所述子原始多边形相对应的外接凸包络。
作为对本发明的优选,在步骤S2中,填色方法具体为:
步骤S21,使用目标色对所述外接凸包络进行着色;
步骤S22,使用目标色的反色对凹角填补后形成的新多边形进行着色。
作为对本发明的优选,在步骤S22中,填补形成的新多边形的算法如下:
设起点为Pi点(0<=i<n-1),终点为Pj点(i<j<n+i-1),判断线段PiPj在不在即将形成的外接凸包络的内部,判断的方法为:
计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk},根据{Lk}的取值,计算出填补形成的新多边形。
作为对本发明的优选,步骤S2的填色过程通过若干轮目标色和目标色的反色循环着色完成。
作为对本发明的优选,使用列表A保存需要填补处理的子原始多边形,使用列表B保存填补处理后产生的对应的外接凸包络,使用列表C保存处理后产生的填补形成的新多边形。
作为对本发明的优选,着色使用种子点扫描线算法。
作为对本发明的优选,种子点为外接凸包络的重心。
一种单连通的任意多边形区域填充系统,包括填补单元、填色单元,所述填补单元用于对原始多边形的凹角进行填补并形成外接凸包络,所述填色单元用于对所述外接凸包络进行填色。
作为对本发明的优选,该系统还包括判断单元、计算单元、存储单元。
本发明将复杂多边形转换为凸多边形,而凸多边形的着色方法相对简单,提高算法效率。
附图说明
图1是本发明实施例1的总的流程图;
图2是本发明实施例1的填补算法的第一个实例图;
图3是本发明实施例1的填补算法的第二个实例图;
图4是本发明实施例1的填补算法的第三个实例图;
图5是本发明实施例1的填补算法的第四个实例图;
图6是本发明实施例1的填补算法的第五个实例图;
图7是本发明实施例1的填补算法的第六个实例图;
图8是本发明实施例1的一个多边形填充实例的原始多边形图;
图9是本发明实施例1的第一轮填色的实例图;
图10是本发明实施例1的第二轮填色的实例图;
图11是本发明实施例1的第三轮填色的实例图;
图12是本发明实施例2的系统模块图。
具体实施方式
以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
实施例1
本发明提供一种适用单连通的任意多边形区域填充的方法。
单连通的任意多边形,包括凸多边形和凹多边形。区域填充算法,是计算机图形学上的基本算法。
所谓单连通,即区域内没有空洞。
该方法的总流程如下:
按如下步骤进行:
步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;
步骤S2,对所述外接凸包络进行填色。
总的流程图如图1所示。
现有的技术缺点在于:1.扫描线算法处理速度快,但是针对凹多边形的情况,稍微显得复杂;
2.种子点算法效率要低一些,且如果着色区域很大是,压缩堆栈的点数目增长很快,容易导致堆栈溢出。
本发明的思路是将任意多边形的填色转换为若干个凸多边形的填色,也即外接凸包络,外接凸包络可以理解为凸多边形,然后对这些凸多边形进行颜色填充,可以使用种子点扫描线算法进行区域填充。
进一步,在对步骤S1中的凹角进行填补之前,判断所述原始多边形是否存在自交边,若存在自交边,则将自交点作为新的顶点并将所述原始多边形分裂成若干子原始多边形,然后对子原始多边形分别进行凹角的填补,形成若干与所述子原始多边形相对应的外接凸包络。因为原始多边形可能是由很多多边形依次连起来的,需要将他们区分开。
在步骤S2中,填色方法具体为:
步骤S21,使用目标色对所述外接凸包络进行着色;
步骤S22,使用目标色的反色对凹角填补后形成的新多边形进行着色。
这里需要指出的是,新多边形也可能是有凹角的多边形,则这些新的有凹角的多边形也要处理成外接凸包络,所以该填色方案来说,是一个循环填色的方法,也即对于新的填补的多边形,迭代使用多边形填补算法,直到不再增加新的多边形,下面回具体介绍一种循环填色的方法。
而其中,在步骤S22中,填补形成的新多边形的算法如下:
设起点为Pi点(0<=i<n-1),终点为Pj点(i<j<n+i-1),判断线段PiPj在不在即将形成的外接凸包络的内部,判断的方法为:
计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk},根据{Lk}的取值,计算出填补形成的新多边形。
另外,步骤S2的填色过程通过若干轮目标色和目标色的反色循环着色完成;
使用列表A保存需要填补处理的子原始多边形,使用列表B保存填补处理后产生的对应的外接凸包络,使用列表C保存处理后产生的填补形成的新多边形;
着色使用种子点扫描线算法;
种子点为外接凸包络的重心。
上述为本发明的总体思路和方法,下面结合具体实例进一步展开描述:
首先,设多边形的顶点序列为{Pi|0<=i<n}。
判断是否存在自交边,如果存在自交边,则将自交点作为新的顶点,并将将原始多边形分裂成多个子原始多边形。如图2所示。
使用多边形填补算法,即通过连接多边形合适的顶点,将凹角填补,得到多边形的外接凸包络;
然后按照目标色对外接凸包络多边形着色,使用目标色的反色(XOR)对填补的多边形区域着色,从而完成整个多边形区域的填色。
如图3所示,
原始多边形区域为S0,通过对多边形填补后,得到一个外接凸包络S,也即凸多边形S,以及三个新的多边形S1、S2、S3
填色区域可以表示为:
S0=S-(S1+S2+S3)
对于新的填补多边形Si来说,也即对于新多边形S1、S2、S3来说,还应该继续进行填补,因为他们也还不一定是凸多边形,迭代使用多边形填补算法,直到不再增加新的多边形。
多边形填补,实质是求多边形的外接凸包络。其算法如下:
第一步:起点为Pi点(0<=i<n-1),终点从Pj点(i<j<n+i-1,约定Pn+k=Pk)。判断线段PiPj在不在外接凸包络内部。
判断线段PiPj在不在外接凸包络内部的算法如下:
计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk}。
根据{Lk}的取值,有以下几种情况:
1)如果所有的Lk值均为正值或均为负值,表示PiPj为多边形的外接边。表明线段PiPj不在外接凸包络内部。
如果j=i+1,表明边PiPi+1为外接凸包络的边。此时,调整起点为Pi点为Pi+1点,终点从Pi+2点开始计算新的边。如图4所示。
如果j>i+1,如果为非自交边,则多边形SN={Pk|i<=k<=j}为新的填补多边形。如图5所示。
2)如果Lk值有正有负,表明部分顶点位于在PiPj连线的直线的一边,部分顶点位于在PiPj连线的直线的另一边。线段PiPj在外接凸包络内部。如图6所示。
此时,终点调整为Pj+1点。
如果起点Pi点与所有终点连线均在外接凸包络内部,表明起点Pi点在外接凸包络内部。此时调整起点为Pi点为Pi+1点,终点从Pi+2点开始计算新的边。
3)如果Lk值存在零值,而其它值均为一种符号,表明值为零的点均在PiPj连线所在的直线上面,从值为零的点序列Z={Pj|j为使得L值为零的点的下标}中取连接Pi点的线段中长度最大的点,不妨设为Pk点,线段PjPk不在外接凸包络内部。
将Pj插入序列Z的头部。如果序列Z中,某个点Pt与后续点的下标连续,表明PtPt+1落在PiPj连线的直线上。
新的填补多边形为:
SN={Pk|zi<=k<zj,zi,zj均属于序列Z的点相邻两个点下标,且zj≠zi+1},如图7所示。
然后进行填色。
使用列表A保存本轮需要填补处理的多边形,列表B为本轮处理后产生的对应的外接凸包络,也即凸多边形,列表C为本轮处理后产生的需要填补处理的多边形。
第一轮处理后,列表B的多边形成员使用目标色着色。
第二轮处理后,列表B的多边形成员使用目标色的反色着色。
第2n-1(n>=1)轮处理后,列表B的多边形成员使用目标色着色。
第2n轮处理后,列表B的多边形成员使用目标色的反色着色。
其中,列表B中的多边形都是凸多边形了。
着色方法使用种子点扫描线算法。种子点为凸多边形的重心,其必然在多边形内部。扫描线结合活动边表,针对种子点的上下两部分进行扫描着色。
下面再具体举个例子:
如图8所示,其为原始多边形,由两个多边形Y1和Y2自交形成,则进行判断得到多边形Y1和Y2分别为两个子原始多边形,则需要对多边形Y1和Y2均要进行填补;
如图9所示,对于多边形Y1来说,要形成外接凸包络,需要填补Y11和Y12,而对于多边形Y2来说,要形成外接凸包络,需要填补Y21和Y22,
则第一轮进行填补的多变形为Y1、Y2,分别形成外接凸包络X1和X2,对X1和X2用目标色着色。而第二轮需要填补处理的多边形为Y11和Y12,以及Y21和Y22。
如图10所示,其中,Y12、Y21和Y22已经是外接凸包络,所以只要用目标色的反色着色即可,而Y11则不同,其还是有凹角,所以Y11要填补成外接凸包络N1后再着色,而外接凸包络N1中需要填补的多边形为N11。
则第二轮进行填补的多边形为Y12、Y21和Y22,以及N1,并用目标色的反色着色。
如图11所示,第三轮对多边形为N11进行填补,形成外接凸包络M1,对外接凸包络M1使用目标色着色,且填补的多边形为M11,则M11为第四轮需要填补处理的多边形。
而在第四轮中,由于M11已经是外接凸多边形,所以,整个多边形已经没有新的增加的多边形,所以只要对M11使用目标色的反色进行着色即可。
这样通过四个轮次的着色,即可完成整个多边形的着色,着色方法使用种子点扫描线算法。种子点为凸多边形的重心,其必然在多边形内部。扫描线结合活动边表,针对种子点的上下两部分进行扫描着色。
整个过程中,需要对本轮进行填补处理的多边形进行保存,对本轮的需要着色的外接凸包络进行保存,对本轮处理形成的新多边形,也即本轮形成的需要处理的多边形进行保存。
与现有最好技术相比,本发明的优点在于:
将复杂多边形转换为凸多边形,而凸多边形的着色方法相对简单,提高算法效率,也即,1.使用多边形填补方法,将任意多边形的填色转换为凸多边形的填色;2.使用XOR方法填色。
实施例2
系统图如图12所示,一种单连通的任意多边形区域填充系统,包括填补单元、填色单元,所述填补单元用于对原始多边形的凹角进行填补并形成外接凸包络,所述填色单元用于对所述外接凸包络进行填色。
本系统适用于于实施例1的单连通的任意多边形区域填充方法,通过填补单元对有凹角的多边形填补形成凸多边形后再进行着色。
进一步地,该系统还包括判断单元、计算单元、存储单元。其中,
判断单元用于判断各种条件;
计算单元用于各种公式等的计算;
存储单元用于存储各种数据。
判断单元、计算单元和存储单元可设置为隶属于填补单元,更加高效地完成多边形凹角的填补,也更利于填色单元根据填补单元的结果进行更加快捷、方便的填色作业。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (5)

1.一种单连通的任意多边形区域填充方法,其特征在于,适用于一种单连通的任意多边形区域填充系统,系统包括填补单元、填色单元、判断单元、计算单元、存储单元,所述填补单元用于对原始多边形的凹角进行填补并形成外接凸包络,所述填色单元用于对所述外接凸包络进行填色; 所述判断单元用于判断原始多边形是否存在自交边;所述计算单元用于计算填补方法中的方程式;所述存储单元用于存储数据;方法按如下步骤进行:
步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;
步骤S2,对所述外接凸包络进行填色;填色方法具体为:
步骤S21,使用目标色对所述外接凸包络进行着色;
步骤S22,使用目标色的反色对凹角填补后形成的新多边形进行着色;其中填补形成的新多边形的算法如下:
设起点为Pi点(0≤i<n-1),终点为Pj点(i<j<n+i-1),判断线段PiPj在不在即将形成的外接凸包络的内部,判断的方法为:
计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk},根据{Lk}的取值,计算出填补形成的新多边形;
在对步骤S1中的凹角进行填补之前,判断所述原始多边形是否存在自交边,若存在自交边,则将自交点作为新的顶点并将所述原始多边形分裂成若干子原始多边形,然后对子原始多边形分别进行凹角的填补,形成若干与所述子原始多边形相对应的外接凸包络。
2.根据权利要求1所述的一种单连通的任意多边形区域填充方法,其特征在于,步骤S2的填色过程通过若干轮目标色和目标色的反色循环着色完成。
3.根据权利要求2所述的一种单连通的任意多边形区域填充方法,其特征在于,使用列表A保存需要填补处理的子原始多边形,使用列表B保存填补处理后产生的对应的外接凸包络,使用列表C保存处理后产生的填补形成的新多边形。
4.根据权利要求3所述的一种单连通的任意多边形区域填充方法,其特征在于,着色使用种子点扫描线算法。
5.根据权利要求4所述的一种单连通的任意多边形区域填充方法,其特征在于,种子点为外接凸包络的重心。
CN201710674719.7A 2017-08-09 2017-08-09 一种单连通的任意多边形区域填充方法及系统 Active CN107622517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710674719.7A CN107622517B (zh) 2017-08-09 2017-08-09 一种单连通的任意多边形区域填充方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710674719.7A CN107622517B (zh) 2017-08-09 2017-08-09 一种单连通的任意多边形区域填充方法及系统

Publications (2)

Publication Number Publication Date
CN107622517A CN107622517A (zh) 2018-01-23
CN107622517B true CN107622517B (zh) 2021-05-07

Family

ID=61088632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710674719.7A Active CN107622517B (zh) 2017-08-09 2017-08-09 一种单连通的任意多边形区域填充方法及系统

Country Status (1)

Country Link
CN (1) CN107622517B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182928A (zh) * 2014-08-15 2014-12-03 成都天奥信息科技有限公司 矢量图形快速多边形填充方法
CN104749072A (zh) * 2013-12-31 2015-07-01 深圳迈瑞生物医疗电子股份有限公司 一种自动生成多边形门的方法、装置及相应的粒子分析仪
CN105931296A (zh) * 2016-04-19 2016-09-07 中山大学 一种基于轮廓的3d打印物体的快速排样方法及其装置
CN106372635A (zh) * 2016-08-24 2017-02-01 滁州学院 一种基于机器视觉的草莓外形品质判别方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104749072A (zh) * 2013-12-31 2015-07-01 深圳迈瑞生物医疗电子股份有限公司 一种自动生成多边形门的方法、装置及相应的粒子分析仪
CN104182928A (zh) * 2014-08-15 2014-12-03 成都天奥信息科技有限公司 矢量图形快速多边形填充方法
CN105931296A (zh) * 2016-04-19 2016-09-07 中山大学 一种基于轮廓的3d打印物体的快速排样方法及其装置
CN106372635A (zh) * 2016-08-24 2017-02-01 滁州学院 一种基于机器视觉的草莓外形品质判别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种改进的多边形区域填充算法;卫洪春;《电脑知识与技术》;20160131;第12卷(第2期);第210-212页 *
浅析区域填充算法;石燕;《计算机光盘软件与应用》;20141231;第131-132页 *

Also Published As

Publication number Publication date
CN107622517A (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
US10861232B2 (en) Generating a customized three-dimensional mesh from a scanned object
JP4624593B2 (ja) 文書画像復号方法
JP5451285B2 (ja) 画像処理装置、画像処理方法
WO2015002113A1 (en) Method for fitting primitive shapes to a set of 3d points
CN110163208B (zh) 一种基于深度学习的场景文字检测方法和系统
CN103810739A (zh) 一种图像文字变形动画的生成方法
CN104143186B (zh) 一种slic超像素分块优化方法
CN106407179A (zh) 汉字字形相似度计算方法及其系统
CN104796649B (zh) 一种三维投影的方法及装置
JP6298422B2 (ja) マンマシンインターフェースのグラフィック表示用の文字列の処理技術
CN109741394A (zh) 图像处理方法、装置、电子设备和存储介质
CN106204719A (zh) 基于二维邻域检索的三维场景中海量模型实时调度方法
CN107622517B (zh) 一种单连通的任意多边形区域填充方法及系统
CN106327449B (zh) 一种图像修复方法、装置和计算设备
CN106021228B (zh) 一种利用知识地形图进行文本分析的方法及系统
JP2011258036A (ja) 3次元形状検索装置、3次元形状検索方法、及びプログラム
JP5230372B2 (ja) 画像処理装置、画像処理方法
CN116310197A (zh) 一种非遗建筑物的三维模型构建方法、装置及存储介质
CN107146268A (zh) 矢量图形的填充方法和矢量图形的填充装置
WO2022144979A1 (ja) 学習装置、学習方法及び記憶媒体
CN103761744B (zh) 通用型二维点云分组方法
JP6169048B2 (ja) 入力パスを変換する方法、入力パスのセグメントを内部又は外部としてラベル付けする方法、入力パスをレンダリングする方法、及び、入力パスの外形を描く方法
JP2004139485A (ja) 要約地図生成装置、道路地図変換装置、該プログラム、及び要約地図サービスシステム
JP7106144B2 (ja) 画像解析装置
CN103745493B (zh) 一种基于图像处理的二维内阴影生成方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201102

Address after: 318015 no.2-3167, zone a, Nonggang City, no.2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Applicant after: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Applicant before: Phicomm (Shanghai) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231214

Address after: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: 318015 no.2-3167, area a, nonggangcheng, 2388 Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Patentee before: Taizhou Jiji Intellectual Property Operation Co.,Ltd.