首页 > 专利 > 台州市吉吉知识产权运营有限公司 > 一种单连通的任意多边形区域填充方法及系统专利详情

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

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2017-08-09
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2018-04-17
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-05-07
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2037-08-09
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201710674719.7 申请日 2017-08-09
公开/公告号 CN107622517B 公开/公告日 2021-05-07
授权日 2021-05-07 预估到期日 2037-08-09
申请年 2017年 公开/公告年 2021年
缴费截止日 2022-09-09
分类号 G06T11/40 主分类号 G06T11/40
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 4
权利要求数量 5 非专利引证数量 1
引用专利数量 0 被引证专利数量 0
非专利引证 1、CN 104749072 A,2015.07.01CN 104182928 A,2014.12.03CN 105931296 A,2016.09.07CN 106372635 A,2017.02.01卫洪春.一种改进的多边形区域填充算法. 《电脑知识与技术》.2016,第12卷(第2期),石燕.浅析区域填充算法《.计算机光盘软件与应用》.2014,;
引用专利 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、申请权转移、授权
申请人信息
申请人 第一申请人
专利权人 台州市吉吉知识产权运营有限公司 当前专利权人 台州市吉吉知识产权运营有限公司
发明人 郑晟 第一发明人 郑晟
地址 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号 邮编 318015
申请人数量 1 发明人数量 1
申请人所在省 浙江省 申请人所在市 浙江省台州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
浙江千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
裴金华
摘要
本发明涉及图形处理技术领域,具体为一种单连通的任意多边形区域填充方法及系统,按如下步骤进行:步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;步骤S2,对所述外接凸包络进行填色,处理简单又效率高。
  • 摘要附图
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图1
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图2
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图3
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图4
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图5
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图6
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图7
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图8
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图9
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图10
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图11
    一种单连通的任意多边形区域填充方法及系统
  • 说明书附图:图12
    一种单连通的任意多边形区域填充方法及系统
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-05-07 授权
2 2020-11-13 专利申请权的转移 登记生效日: 2020.11.02 申请人由上海斐讯数据通信技术有限公司变更为台州市吉吉知识产权运营有限公司 地址由201616 上海市松江区思贤路3666号变更为318015 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号
3 2018-04-17 实质审查的生效 IPC(主分类): G06T 11/40 专利申请号: 201710674719.7 申请日: 2017.08.09
4 2018-01-23 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
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所述的一种单连通的任意多边形区域填充方法,其特征在于,种子点为外接凸包络的重心。
说明书

技术领域

[0001] 本发明涉及图形处理技术领域,具体为一种单连通的任意多边形区域填充方法及系统。

背景技术

[0002] 多边形的区域填充算法,目前基本分为两类:一类是扫描线算法(Scan-Line Filling)。这类算法建立在多边形边边界的矢量形式数据之上,可用于程序填色,也可用交互填色,算法的基本思路是通过水平的扫描线,与多边形区域求交,将属于区域内部的线段着色,针对凹多边形,要区分多边形内外,为了减少扫描线与多边形各边求交的次数,发展了使用边表(ET)和活动边表(AET)的快速算法;另一类是种子填色(Seed Filling)算法。这类算法建立在多边形边边界的图象形式数据之上,并还需提供多边形界内一点的坐标。所以,它一般只能用于人机交互填色,而难以用于程序填色。从种子点开始,使用四连通或八连通区域,搜索周边像素点,并进行着色,其中四个方向搜索算法,有一定的局限。针对下列八连通区域,不能充分着色,扫描线算法处理速度快,但是针对凹多边形的情况,稍微显得复杂。种子点算法效率要低一些,且如果着色区域很大是,压缩堆栈的点数目增长很快,容易导致堆栈溢出。
[0003] 现有很多相关的技术存在,如公开号为102376099A的专利公开了一种改善矢量图形填充效果的方法,其包括下述步骤:1)基于扫描线而检测所述矢量图形中是否存在待弥补区域;2)基于丢点笔划表而判断所存在的待弥补区域是否为交点凹陷,并对确认为交点凹陷的待弥补区域进行填充,还提供一种改善矢量图形填充效果的系统,且提供的系统和方法能够消除因交点凹陷而带来的各种图形畸变,从而大大改善低分辨率下的诸如矢量字形的矢量图形的填充效果,并使文字/图形的可辨识度得到提升,但是这种方式同样存在上述的缺陷,处理起来不够简单,效率也较低。

发明内容

[0004] 本发明的一个目的是提供一种处理简单又效率高的单连通的任意多边形区域填充方法及系统。
[0005] 本发明的上述技术目的是通过以下技术方案得以实现的:
[0006] 一种单连通的任意多边形区域填充方法,按如下步骤进行:
[0007] 步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;
[0008] 步骤S2,对所述外接凸包络进行填色。
[0009] 作为对本发明的优选,在对步骤S1中的凹角进行填补之前,判断所述原始多边形是否存在自交边,若存在自交边,则将自交点作为新的顶点并将所述原始多边形分裂成若干子原始多边形,然后对子原始多边形分别进行凹角的填补,形成若干与所述子原始多边形相对应的外接凸包络。
[0010] 作为对本发明的优选,在步骤S2中,填色方法具体为:
[0011] 步骤S21,使用目标色对所述外接凸包络进行着色;
[0012] 步骤S22,使用目标色的反色对凹角填补后形成的新多边形进行着色。
[0013] 作为对本发明的优选,在步骤S22中,填补形成的新多边形的算法如下:
[0014] 设起点为Pi点(0<=i
[0015] 计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk},根据{Lk}的取值,计算出填补形成的新多边形。
[0016] 作为对本发明的优选,步骤S2的填色过程通过若干轮目标色和目标色的反色循环着色完成。
[0017] 作为对本发明的优选,使用列表A保存需要填补处理的子原始多边形,使用列表B保存填补处理后产生的对应的外接凸包络,使用列表C保存处理后产生的填补形成的新多边形。
[0018] 作为对本发明的优选,着色使用种子点扫描线算法。
[0019] 作为对本发明的优选,种子点为外接凸包络的重心。
[0020] 一种单连通的任意多边形区域填充系统,包括填补单元、填色单元,所述填补单元用于对原始多边形的凹角进行填补并形成外接凸包络,所述填色单元用于对所述外接凸包络进行填色。
[0021] 作为对本发明的优选,该系统还包括判断单元、计算单元、存储单元。
[0022] 本发明将复杂多边形转换为凸多边形,而凸多边形的着色方法相对简单,提高算法效率。

实施方案

[0035] 以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
[0036] 实施例1
[0037] 本发明提供一种适用单连通的任意多边形区域填充的方法。
[0038] 单连通的任意多边形,包括凸多边形和凹多边形。区域填充算法,是计算机图形学上的基本算法。
[0039] 所谓单连通,即区域内没有空洞。
[0040] 该方法的总流程如下:
[0041] 按如下步骤进行:
[0042] 步骤S1,将原始多边形的凹角进行填补,形成所述原始多边形的外接凸包络;
[0043] 步骤S2,对所述外接凸包络进行填色。
[0044] 总的流程图如图1所示。
[0045] 现有的技术缺点在于:1.扫描线算法处理速度快,但是针对凹多边形的情况,稍微显得复杂;
[0046] 2.种子点算法效率要低一些,且如果着色区域很大是,压缩堆栈的点数目增长很快,容易导致堆栈溢出。
[0047] 本发明的思路是将任意多边形的填色转换为若干个凸多边形的填色,也即外接凸包络,外接凸包络可以理解为凸多边形,然后对这些凸多边形进行颜色填充,可以使用种子点扫描线算法进行区域填充。
[0048] 进一步,在对步骤S1中的凹角进行填补之前,判断所述原始多边形是否存在自交边,若存在自交边,则将自交点作为新的顶点并将所述原始多边形分裂成若干子原始多边形,然后对子原始多边形分别进行凹角的填补,形成若干与所述子原始多边形相对应的外接凸包络。因为原始多边形可能是由很多多边形依次连起来的,需要将他们区分开。
[0049] 在步骤S2中,填色方法具体为:
[0050] 步骤S21,使用目标色对所述外接凸包络进行着色;
[0051] 步骤S22,使用目标色的反色对凹角填补后形成的新多边形进行着色。
[0052] 这里需要指出的是,新多边形也可能是有凹角的多边形,则这些新的有凹角的多边形也要处理成外接凸包络,所以该填色方案来说,是一个循环填色的方法,也即对于新的填补的多边形,迭代使用多边形填补算法,直到不再增加新的多边形,下面回具体介绍一种循环填色的方法。
[0053] 而其中,在步骤S22中,填补形成的新多边形的算法如下:
[0054] 设起点为Pi点(0<=i
[0055] 计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk},根据{Lk}的取值,计算出填补形成的新多边形。
[0056] 另外,步骤S2的填色过程通过若干轮目标色和目标色的反色循环着色完成;
[0057] 使用列表A保存需要填补处理的子原始多边形,使用列表B保存填补处理后产生的对应的外接凸包络,使用列表C保存处理后产生的填补形成的新多边形;
[0058] 着色使用种子点扫描线算法;
[0059] 种子点为外接凸包络的重心。
[0060] 上述为本发明的总体思路和方法,下面结合具体实例进一步展开描述:
[0061] 首先,设多边形的顶点序列为{Pi|0<=i
[0062] 判断是否存在自交边,如果存在自交边,则将自交点作为新的顶点,并将将原始多边形分裂成多个子原始多边形。如图2所示。
[0063] 使用多边形填补算法,即通过连接多边形合适的顶点,将凹角填补,得到多边形的外接凸包络;
[0064] 然后按照目标色对外接凸包络多边形着色,使用目标色的反色(XOR)对填补的多边形区域着色,从而完成整个多边形区域的填色。
[0065] 如图3所示,
[0066] 原始多边形区域为S0,通过对多边形填补后,得到一个外接凸包络S,也即凸多边形S,以及三个新的多边形S1、S2、S3。
[0067] 填色区域可以表示为:
[0068] S0=S-(S1+S2+S3)
[0069] 对于新的填补多边形Si来说,也即对于新多边形S1、S2、S3来说,还应该继续进行填补,因为他们也还不一定是凸多边形,迭代使用多边形填补算法,直到不再增加新的多边形。
[0070] 多边形填补,实质是求多边形的外接凸包络。其算法如下:
[0071] 第一步:起点为Pi点(0<=i
[0072] 判断线段PiPj在不在外接凸包络内部的算法如下:
[0073] 计算PiPj连线的直线方程,得到直线方程L(x,y)=ax+by+c,依次将Pj+1点开始的后续各点坐标代入直线方程,得到一系列值{Lk}。
[0074] 根据{Lk}的取值,有以下几种情况:
[0075] 1)如果所有的Lk值均为正值或均为负值,表示PiPj为多边形的外接边。表明线段PiPj不在外接凸包络内部。
[0076] 如果j=i+1,表明边PiPi+1为外接凸包络的边。此时,调整起点为Pi点为Pi+1点,终点从Pi+2点开始计算新的边。如图4所示。
[0077] 如果j>i+1,如果为非自交边,则多边形SN={Pk|i<=k<=j}为新的填补多边形。如图5所示。
[0078] 2)如果Lk值有正有负,表明部分顶点位于在PiPj连线的直线的一边,部分顶点位于在PiPj连线的直线的另一边。线段PiPj在外接凸包络内部。如图6所示。
[0079] 此时,终点调整为Pj+1点。
[0080] 如果起点Pi点与所有终点连线均在外接凸包络内部,表明起点Pi点在外接凸包络内部。此时调整起点为Pi点为Pi+1点,终点从Pi+2点开始计算新的边。
[0081] 3)如果Lk值存在零值,而其它值均为一种符号,表明值为零的点均在PiPj连线所在的直线上面,从值为零的点序列Z={Pj|j为使得L值为零的点的下标}中取连接Pi点的线段中长度最大的点,不妨设为Pk点,线段PjPk不在外接凸包络内部。
[0082] 将Pj插入序列Z的头部。如果序列Z中,某个点Pt与后续点的下标连续,表明PtPt+1落在PiPj连线的直线上。
[0083] 新的填补多边形为:
[0084] SN={Pk|zi<=k
[0085] 然后进行填色。
[0086] 使用列表A保存本轮需要填补处理的多边形,列表B为本轮处理后产生的对应的外接凸包络,也即凸多边形,列表C为本轮处理后产生的需要填补处理的多边形。
[0087] 第一轮处理后,列表B的多边形成员使用目标色着色。
[0088] 第二轮处理后,列表B的多边形成员使用目标色的反色着色。
[0089] 第2n-1(n>=1)轮处理后,列表B的多边形成员使用目标色着色。
[0090] 第2n轮处理后,列表B的多边形成员使用目标色的反色着色。
[0091] 其中,列表B中的多边形都是凸多边形了。
[0092] 着色方法使用种子点扫描线算法。种子点为凸多边形的重心,其必然在多边形内部。扫描线结合活动边表,针对种子点的上下两部分进行扫描着色。
[0093] 下面再具体举个例子:
[0094] 如图8所示,其为原始多边形,由两个多边形Y1和Y2自交形成,则进行判断得到多边形Y1和Y2分别为两个子原始多边形,则需要对多边形Y1和Y2均要进行填补;
[0095] 如图9所示,对于多边形Y1来说,要形成外接凸包络,需要填补Y11和Y12,而对于多边形Y2来说,要形成外接凸包络,需要填补Y21和Y22,
[0096] 则第一轮进行填补的多变形为Y1、Y2,分别形成外接凸包络X1和X2,对X1和X2用目标色着色。而第二轮需要填补处理的多边形为Y11和Y12,以及Y21和Y22。
[0097] 如图10所示,其中,Y12、Y21和Y22已经是外接凸包络,所以只要用目标色的反色着色即可,而Y11则不同,其还是有凹角,所以Y11要填补成外接凸包络N1后再着色,而外接凸包络N1中需要填补的多边形为N11。
[0098] 则第二轮进行填补的多边形为Y12、Y21和Y22,以及N1,并用目标色的反色着色。
[0099] 如图11所示,第三轮对多边形为N11进行填补,形成外接凸包络M1,对外接凸包络M1使用目标色着色,且填补的多边形为M11,则M11为第四轮需要填补处理的多边形。
[0100] 而在第四轮中,由于M11已经是外接凸多边形,所以,整个多边形已经没有新的增加的多边形,所以只要对M11使用目标色的反色进行着色即可。
[0101] 这样通过四个轮次的着色,即可完成整个多边形的着色,着色方法使用种子点扫描线算法。种子点为凸多边形的重心,其必然在多边形内部。扫描线结合活动边表,针对种子点的上下两部分进行扫描着色。
[0102] 整个过程中,需要对本轮进行填补处理的多边形进行保存,对本轮的需要着色的外接凸包络进行保存,对本轮处理形成的新多边形,也即本轮形成的需要处理的多边形进行保存。
[0103] 与现有最好技术相比,本发明的优点在于:
[0104] 将复杂多边形转换为凸多边形,而凸多边形的着色方法相对简单,提高算法效率,也即,1.使用多边形填补方法,将任意多边形的填色转换为凸多边形的填色;2.使用XOR方法填色。
[0105] 实施例2
[0106] 系统图如图12所示,一种单连通的任意多边形区域填充系统,包括填补单元、填色单元,所述填补单元用于对原始多边形的凹角进行填补并形成外接凸包络,所述填色单元用于对所述外接凸包络进行填色。
[0107] 本系统适用于于实施例1的单连通的任意多边形区域填充方法,通过填补单元对有凹角的多边形填补形成凸多边形后再进行着色。
[0108] 进一步地,该系统还包括判断单元、计算单元、存储单元。其中,[0109] 判断单元用于判断各种条件;
[0110] 计算单元用于各种公式等的计算;
[0111] 存储单元用于存储各种数据。
[0112] 判断单元、计算单元和存储单元可设置为隶属于填补单元,更加高效地完成多边形凹角的填补,也更利于填色单元根据填补单元的结果进行更加快捷、方便的填色作业。
[0113] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

附图说明

[0023] 图1是本发明实施例1的总的流程图;
[0024] 图2是本发明实施例1的填补算法的第一个实例图;
[0025] 图3是本发明实施例1的填补算法的第二个实例图;
[0026] 图4是本发明实施例1的填补算法的第三个实例图;
[0027] 图5是本发明实施例1的填补算法的第四个实例图;
[0028] 图6是本发明实施例1的填补算法的第五个实例图;
[0029] 图7是本发明实施例1的填补算法的第六个实例图;
[0030] 图8是本发明实施例1的一个多边形填充实例的原始多边形图;
[0031] 图9是本发明实施例1的第一轮填色的实例图;
[0032] 图10是本发明实施例1的第二轮填色的实例图;
[0033] 图11是本发明实施例1的第三轮填色的实例图;
[0034] 图12是本发明实施例2的系统模块图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号