[发明专利]扫描线种子填充方法在审
申请号: | 202011251314.0 | 申请日: | 2020-11-10 |
公开(公告)号: | CN112465930A | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 周力为;陈亚妹 | 申请(专利权)人: | 深圳市益欣网络科技有限公司 |
主分类号: | G06T11/40 | 分类号: | G06T11/40 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 刘宇波 |
地址: | 518000 广东省深圳市宝安区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 扫描 种子 填充 方法 | ||
本发明公开了扫描线种子填充方法,该填充方法的具体步骤为:初始化一个空栈,用于存放标记点和过滤区间;将一个起始点压入栈堆,遍历栈堆执行操作,直到栈堆为空;其中,执行操作的具体步骤为:栈顶出栈;沿扫描线以出栈点进行左右扫描,直到遇到边界为止;将上述扫描区间的左右边界记为新的判断区间;以当前扫描点的上下相邻区间,该点的过滤区间的这段区域进行判断,若为非边界和未填充点,则将新区间左边的可扫描点压入栈堆,将该点的过滤区间;重复栈堆执行操作,本发明查询新种子点时,已扫描区域不会被重复查询扫描。栈堆的点会先进行标记判断,已标记过的点直接出栈,不进行扫描标记。
技术领域
本发明涉及扫描线种子技术领域,具体是扫描线种子填充方法。
背景技术
在计算机图形学中,区域填充存在着广泛的应用,有四连通和八连通区域不同的计算方法。而不规则联通区域存在着各种复杂情况,例如挖孔和凹凸等特殊情况。同时也可以利用这种方式运用于一些游戏上的设计和实现。一些数字消除类游戏,同样需要进行不规则的区域检测,比较常见的技术时扫描线种子填充算法,但也存在着运算复杂度或空间占用大等相关问题。
发明内容
本发明的目的在于提供扫描线种子填充方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
扫描线种子填充方法,该填充方法的具体步骤为:
初始化一个空栈,用于存放标记点和过滤区间;
将一个起始点压入栈堆,遍历栈堆执行操作,直到栈堆为空;
其中,执行操作的具体步骤为:
栈顶出栈;
沿扫描线以出栈点进行左右扫描,直到遇到边界为止;
将上述扫描区间的左右边界记为新的判断区间;
以当前扫描点的上下相邻区间,该点的过滤区间的这段区域进行判断,若为非边界和未填充点,则将新区间左边的可扫描点压入栈堆,将该点的过滤区间;
重复栈堆执行操作。
作为本发明进一步的方案:初始化一个空栈,用于存放标记点和过滤区间之前的具体操作为:
输入查询区域的二维数组和起始点坐标;
若起始点坐标在二维数组范围内;
则初始化一个空栈,用于存放标记点和过滤区间。
作为本发明进一步的方案:初始化一个空栈,用于存放标记点和过滤区间具体为:
初始化空栈数组、扫描区域和标记值;
初始化和数值同等大小的标记二维数组,并设置数组值。
作为本发明进一步的方案:所述将一个起始点压入栈堆具体为:
将空栈数组、扫描区域和标记值压入栈堆。
与现有技术相比,本发明的有益效果是:常见的种子填充方法中,会存在种子点重复入栈导致栈空间太大,并且没有很好的过滤已扫描的区域,在查询新种子点入栈时往往重复扫描已扫描过的区间,从而增加了运算量。
本扫描线种子填充方法侧重于优化种子点重复入栈和在查询新种子点的查询区域进行过滤已查询区域,减少重复运算的地方。
查询新种子点时,已扫描区域不会被重复查询扫描。栈堆的点会先进行标记判断,已标记过的点直接出栈,不进行扫描标记。
我们在种子点进行上下相邻区间查询时进行区间过滤,缩小查询范围,减少运算复杂度和运算时占用空间。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市益欣网络科技有限公司,未经深圳市益欣网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011251314.0/2.html,转载请声明来源钻瓜专利网。