CN112465930A - 扫描线种子填充方法 - Google Patents
扫描线种子填充方法 Download PDFInfo
- Publication number
- CN112465930A CN112465930A CN202011251314.0A CN202011251314A CN112465930A CN 112465930 A CN112465930 A CN 112465930A CN 202011251314 A CN202011251314 A CN 202011251314A CN 112465930 A CN112465930 A CN 112465930A
- Authority
- CN
- China
- Prior art keywords
- stack
- point
- scanning
- filtering
- area
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000001914 filtration Methods 0.000 claims abstract description 26
- 239000003550 marker Substances 0.000 claims 2
- 230000001788 irregular Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Filtration Of Liquid (AREA)
Abstract
本发明公开了扫描线种子填充方法,该填充方法的具体步骤为:初始化一个空栈,用于存放标记点和过滤区间;将一个起始点压入栈堆,遍历栈堆执行操作,直到栈堆为空;其中,执行操作的具体步骤为:栈顶出栈;沿扫描线以出栈点进行左右扫描,直到遇到边界为止;将上述扫描区间的左右边界记为新的判断区间;以当前扫描点的上下相邻区间,该点的过滤区间的这段区域进行判断,若为非边界和未填充点,则将新区间左边的可扫描点压入栈堆,将该点的过滤区间;重复栈堆执行操作,本发明查询新种子点时,已扫描区域不会被重复查询扫描。栈堆的点会先进行标记判断,已标记过的点直接出栈,不进行扫描标记。
Description
技术领域
本发明涉及扫描线种子技术领域,具体是扫描线种子填充方法。
背景技术
在计算机图形学中,区域填充存在着广泛的应用,有四连通和八连通区域不同的计算方法。而不规则联通区域存在着各种复杂情况,例如挖孔和凹凸等特殊情况。同时也可以利用这种方式运用于一些游戏上的设计和实现。一些数字消除类游戏,同样需要进行不规则的区域检测,比较常见的技术时扫描线种子填充算法,但也存在着运算复杂度或空间占用大等相关问题。
发明内容
本发明的目的在于提供扫描线种子填充方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
扫描线种子填充方法,该填充方法的具体步骤为:
初始化一个空栈,用于存放标记点和过滤区间;
将一个起始点压入栈堆,遍历栈堆执行操作,直到栈堆为空;
其中,执行操作的具体步骤为:
栈顶出栈;
沿扫描线以出栈点进行左右扫描,直到遇到边界为止;
将上述扫描区间的左右边界记为新的判断区间;
以当前扫描点的上下相邻区间,该点的过滤区间的这段区域进行判断,若为非边界和未填充点,则将新区间左边的可扫描点压入栈堆,将该点的过滤区间;
重复栈堆执行操作。
作为本发明进一步的方案:初始化一个空栈,用于存放标记点和过滤区间之前的具体操作为:
输入查询区域的二维数组和起始点坐标;
若起始点坐标在二维数组范围内;
则初始化一个空栈,用于存放标记点和过滤区间。
作为本发明进一步的方案:初始化一个空栈,用于存放标记点和过滤区间具体为:
初始化空栈数组、扫描区域和标记值;
初始化和数值同等大小的标记二维数组,并设置数组值。
作为本发明进一步的方案:所述将一个起始点压入栈堆具体为:
将空栈数组、扫描区域和标记值压入栈堆。
与现有技术相比,本发明的有益效果是:常见的种子填充方法中,会存在种子点重复入栈导致栈空间太大,并且没有很好的过滤已扫描的区域,在查询新种子点入栈时往往重复扫描已扫描过的区间,从而增加了运算量。
本扫描线种子填充方法侧重于优化种子点重复入栈和在查询新种子点的查询区域进行过滤已查询区域,减少重复运算的地方。
查询新种子点时,已扫描区域不会被重复查询扫描。栈堆的点会先进行标记判断,已标记过的点直接出栈,不进行扫描标记。
我们在种子点进行上下相邻区间查询时进行区间过滤,缩小查询范围,减少运算复杂度和运算时占用空间。
具体实施方式
下面将结合本发明实施例中,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,扫描线种子填充方法,该填充方法的具体步骤为:
初始化一个空栈,用于存放标记点和过滤区间;
将一个起始点压入栈堆,遍历栈堆执行操作,直到栈堆为空;
其中,执行操作的具体步骤为:
栈顶出栈;
沿扫描线以出栈点进行左右扫描,直到遇到边界为止;
将上述扫描区间的左右边界记为新的判断区间;
以当前扫描点的上下相邻区间,该点的过滤区间的这段区域进行判断,若为非边界和未填充点,则将新区间左边的可扫描点压入栈堆,将该点的过滤区间;
重复栈堆执行操作。
初始化一个空栈,用于存放标记点和过滤区间之前的具体操作为:
输入查询区域的二维数组和起始点坐标;
若起始点坐标在二维数组范围内;
则初始化一个空栈,用于存放标记点和过滤区间。
初始化一个空栈,用于存放标记点和过滤区间具体为:
初始化空栈数组、扫描区域和标记值;
初始化和数值同等大小的标记二维数组,并设置数组值。
将一个起始点压入栈堆具体为:
将空栈数组、扫描区域和标记值压入栈堆。
常见的种子填充方法中,会存在种子点重复入栈导致栈空间太大,并且没有很好的过滤已扫描的区域,在查询新种子点入栈时往往重复扫描已扫描过的区间,从而增加了运算量。
本扫描线种子填充方法侧重于优化种子点重复入栈和在查询新种子点的查询区域进行过滤已查询区域,减少重复运算的地方。
查询新种子点时,已扫描区域不会被重复查询扫描。栈堆的点会先进行标记判断,已标记过的点直接出栈,不进行扫描标记。
虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
故以上所述仅为本申请的较佳实施例,并非用来限定本申请的实施范围;即凡依本申请的权利要求范围所做的各种等同变换,均为本申请权利要求的保护范围。
Claims (4)
1.扫描线种子填充方法,其特征在于,该填充方法的具体步骤为:
初始化一个空栈,用于存放标记点和过滤区间;
将一个起始点压入栈堆,遍历栈堆执行操作,直到栈堆为空;
其中,执行操作的具体步骤为:
栈顶出栈;
沿扫描线以出栈点进行左右扫描,直到遇到边界为止;
将上述扫描区间的左右边界记为新的判断区间;
以当前扫描点的上下相邻区间,该点的过滤区间的这段区域进行判断,若为非边界和未填充点,则将新区间左边的可扫描点压入栈堆,将该点的过滤区间;
重复栈堆执行操作。
2.根据权利要求1所述的扫描线种子填充方法,其特征在于,初始化一个空栈,用于存放标记点和过滤区间之前的具体操作为:
输入查询区域的二维数组和起始点坐标;
若起始点坐标在二维数组范围内;
则初始化一个空栈,用于存放标记点和过滤区间。
3.根据权利要求1所述的扫描线种子填充方法,其特征在于,初始化一个空栈,用于存放标记点和过滤区间具体为:
初始化空栈数组、扫描区域和标记值;
初始化和数值同等大小的标记二维数组,并设置数组值。
4.根据权利要求3所述的扫描线种子填充方法,其特征在于,所述将一个起始点压入栈堆具体为:
将空栈数组、扫描区域和标记值压入栈堆。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251314.0A CN112465930A (zh) | 2020-11-10 | 2020-11-10 | 扫描线种子填充方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251314.0A CN112465930A (zh) | 2020-11-10 | 2020-11-10 | 扫描线种子填充方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112465930A true CN112465930A (zh) | 2021-03-09 |
Family
ID=74825429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011251314.0A Pending CN112465930A (zh) | 2020-11-10 | 2020-11-10 | 扫描线种子填充方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112465930A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0250868A2 (en) * | 1986-06-23 | 1988-01-07 | International Business Machines Corporation | Method and apparatus for area fill in a raster graphics system |
CA2471168A1 (en) * | 1999-05-25 | 2000-11-25 | Nippon Telegraph And Telephone Corporation | Image filling method, apparatus and computer readable medium for reducing filling process in producing animation |
US6271856B1 (en) * | 1998-11-19 | 2001-08-07 | Paraform, Inc. | Creating and modifying parameterizations of surfaces |
CN102693525A (zh) * | 2012-05-08 | 2012-09-26 | 北京航空航天大学 | 一种解决种子填充算法中像素多次出入栈问题的方法 |
CN105184837A (zh) * | 2015-08-31 | 2015-12-23 | 武汉云空间地理信息技术有限公司 | 一种矢量多边形栅格化的算法及系统 |
CN109767479A (zh) * | 2018-12-13 | 2019-05-17 | 南京国电南自电网自动化有限公司 | 一种基于动态边界组序列的图元填充方法和系统 |
-
2020
- 2020-11-10 CN CN202011251314.0A patent/CN112465930A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0250868A2 (en) * | 1986-06-23 | 1988-01-07 | International Business Machines Corporation | Method and apparatus for area fill in a raster graphics system |
US6271856B1 (en) * | 1998-11-19 | 2001-08-07 | Paraform, Inc. | Creating and modifying parameterizations of surfaces |
CA2471168A1 (en) * | 1999-05-25 | 2000-11-25 | Nippon Telegraph And Telephone Corporation | Image filling method, apparatus and computer readable medium for reducing filling process in producing animation |
CN102693525A (zh) * | 2012-05-08 | 2012-09-26 | 北京航空航天大学 | 一种解决种子填充算法中像素多次出入栈问题的方法 |
CN105184837A (zh) * | 2015-08-31 | 2015-12-23 | 武汉云空间地理信息技术有限公司 | 一种矢量多边形栅格化的算法及系统 |
CN109767479A (zh) * | 2018-12-13 | 2019-05-17 | 南京国电南自电网自动化有限公司 | 一种基于动态边界组序列的图元填充方法和系统 |
Non-Patent Citations (3)
Title |
---|
LEE, H. G.等: "Grain-oriented segmentation of images of porous structures using ray casting and curvature energy minimization", JOURNAL OF MICROSCOPY, vol. 257, no. 2, pages 92 - 103 * |
杜娟;郑永果;李敏;: "一种改进的扫描线种子填充算法", 信息技术与信息化, no. 03, pages 83 - 84 * |
郭文平;龙帮强;: "扫描线种子填充算法的改进", 天津工业大学学报, no. 02, pages 48 - 51 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945368B (zh) | 啤酒瓶盖激光字符的定位识别方法 | |
CN110136264B (zh) | 基于三维激光扫描的料场物料的建模方法及系统 | |
CN1940932A (zh) | 表示或者检索图象中的对象的方法及其装置、计算机程序、计算机系统以及计算机可读存储媒体 | |
CN107545833B (zh) | 一种道路绘制方法及装置 | |
CN107423735B (zh) | 一种利用水平梯度和饱和度的车牌定位方法 | |
CN109767479B (zh) | 一种基于动态边界组序列的图元填充方法和系统 | |
EP3336749A1 (en) | Fingerprint image recognition method, apparatus, and terminal | |
CN107316043A (zh) | 一种采摘机器人的堆叠蘑菇快速识别方法 | |
CN113071935B (zh) | 一种自动码垛方法 | |
CN112507911B (zh) | 一种基于机器视觉的山核桃果实在图像中的实时识别方法 | |
CN103810300B (zh) | 用于非索引覆盖的数据查询方法和装置 | |
CN112465930A (zh) | 扫描线种子填充方法 | |
CN107067430A (zh) | 一种基于特征点聚类的麦田作物行检测方法 | |
CN109934886A (zh) | 图形的填充方法、装置及交互智能设备 | |
CN102999931A (zh) | 电子笔迹绘制方法及装置 | |
CN116434225B (zh) | 一种菌盖形态数据自动获取方法及系统 | |
CN117911444A (zh) | 一种基于边缘处理的抠图方法及系统 | |
WO2021228194A1 (zh) | 线缆检测方法、机器人和存储装置 | |
CN102789523A (zh) | 基于图像处理的鞋样设计方法 | |
CN103226709A (zh) | 一种美国白蛾幼虫网幕图像识别方法 | |
CN110532980B (zh) | 复杂背景下基于颜色的书写痕迹提取方法、系统和装置 | |
CN108897912B (zh) | 基于圆堆的孔装饰板设计排布方法 | |
JP2003091727A5 (zh) | ||
CN1035844C (zh) | 在字符识别系统中选取候选字符的方法 | |
CN110264531A (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 |