图形的填充方法、装置及交互智能设备与流程

文档序号:18002046发布日期:2019-06-25 22:57阅读:252来源:国知局
图形的填充方法、装置及交互智能设备与流程

本发明涉及图像处理领域,具体而言,涉及一种图形的填充方法、装置及交互智能设备。



背景技术:

交互智能设备为用户提供了白板功能,用户可以在白板功能中进行图像的绘制以及颜色的填充,图1是现有技术中对封闭图形进行填充的示意图,可以先绘制任意一个图形,在绘制的图形封闭的情况下,该封闭区域即可进行颜色的填充。

图2是图1的局部放大图,结合图2所示,填充部分与边缘相交的区域具有较明显的锯齿,导致填充图像后图像的效果不佳。

针对现有技术中交互智能平板在为封闭图形填充颜色时,填充色与封闭图形的交界处的锯齿情况较严重的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种图形的填充方法、装置及交互智能设备,以至少解决现有技术中交互智能平板在为封闭图形填充颜色时,填充色与封闭图形的交界处的锯齿情况较严重的技术问题。

根据本发明实施例的一个方面,提供了一种图形的填充方法,包括:获取待填充区域的全部像素点;从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为全部像素点中,与构成待填充区域的边界相邻的像素点;连接目标像素点得到对应的连线;使用目标颜色对连线进行绘制。

进一步地,使用扫描线种子算法扫描待填充区域的全部像素点,其中,扫描线种子算法用于按行扫描全部像素点;获取通过扫描线种子算法得到的待填充区域中的候选目标像素点,其中,候选目标像素点为每行像素的最左端的像素点和最右端的像素点;根据候选目标像素点确定目标像素点。

进一步地,获取每个候选目标像素点与边界的最小距离;获取预设距离阈值;在候选目标像素点中查找对应的最小距离大于预设距离阈值的过滤像素点;从候选目标像素点中去除过滤像素点,得到目标像素点。

进一步地,调用安卓模块中的像素点连接函数;使用像素点连接函数对目标像素点进行连接,得到连线。

进一步地,目标颜色为待填充区域的颜色。

根据本发明实施例的另一方面,还提供了一种图形的填充装置,包括:获取模块,用于获取待填充区域的全部像素点;选择模块,用于从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为全部像素点中,与构成待填充区域的边界相邻的像素点;连接模块,用于连接目标像素点得到对应的连线;绘制模块,用于使用目标颜色对获得到目标像素点进行绘制。

进一步地,选择模块包括:扫描子模块,用于使用扫描线种子算法扫描待填充区域的全部像素点,其中,扫描线种子算法用于按行扫描全部像素点;第一获取子模块,用于获取通过扫描线种子算法得到的待填充区域中的候选目标像素点,其中,候选目标像素点为每行像素的最左端的像素点和最右端的像素点。

第一确定子模块,用于根据候选目标像素点确定目标像素点。

进一步地,确定子模块包括:第二获取子模块,用于获取每个候选目标像素点与边界的最小距离;第三获取子模块,用于获取预设距离阈值;查找子模块,用于在候选目标像素点中查找对应的最小距离大于预设距离阈值的过滤像素点;过滤子模块,用于从候选目标像素点中去除过滤像素点,得到目标像素点。

进一步地,连接模块包括:调用子模块,用于调用安卓模块中的像素点连接函数;连接子模块,用于使用像素点连接函数对目标像素点进行连接,得到连线。

根据本发明实施例的另一方面,还提供了一种交互智能设备,包括:处理器;以及存储介质,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取待填充区域的全部像素点;

从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为全部像素点中,与构成待填充区域的边界相邻的像素点;连接目标像素点得到对应的连线;使用目标颜色对连线进行绘制。

在本发明实施例中,获取待填充区域的全部像素点,从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为待填充区域与构成待填充区域的边界最接近的像素点,使用目标颜色对获得到目标像素点进行绘制。上述方案通过获取待填充区域的全部像素点中,与边界相邻的目标像素点,并将目标像素点进行连线后,对连线进行绘制,从而使得待填充区域与边界之间的锯齿并被绘制的连接所遮盖,进而使得对待填充区域的填充更加完整,缓解了对封闭图形填充时产生的锯齿现象,解决了现有技术中交互智能平板在为封闭图形填充颜色时,填充色与封闭图形的交界处的锯齿情况较严重的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是现有技术中对封闭图形进行填充的示意图;

图2是图1的局部放大图;

图3是根据本发明实施例的图形的填充方法的流程图;

图4是根据本申请实施例的一种对封闭图形进行填充的示意图;

图5是图4的局部放大图;以及

图6是根据本发明实施例的图形的填充装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种图形的填充方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图3是根据本发明实施例的图形的填充方法的流程图,如图3所示,该方法包括如下步骤:

步骤s102,获取待填充区域的全部像素点。

具体的,上述待填充区域为封闭图形构成的区域。当设备接收到为待填充区域填充颜色的指令时,处理器执行获取待填充区域的全部像素点的步骤。

在一种可选的实施例中,以在交互智能设备中的白板应用为例,用户绘制封闭的图形,并通过点击封闭图形内的任意一点,选中待填充区域,再点击需要填充的颜色,即可向交互智能设备的处理器发送使用选中的颜色填充待填充区域的指令,处理器接收到上述指令后,开始获取待填充区域的全部像素。

图4是根据本申请实施例的一种对封闭图形进行填充的示意图,如图4所示,用户绘制如图4所示的封闭图形,该封闭图形内部的区域即为待填充区域。

步骤s104,从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为全部像素点中,与构成待填充区域的边界相邻的像素点。

具体的,构成待填充区域的边界即为构成该待填充区域的封闭图形,目标像素点用于表示待填充区域中,最外一层与边界相邻的像素点,在一种可选的实施例中,可以通过预设方向扫描全部像素点,得到多排扫描结果,每排扫描结果两端的端点即为全部像素点中,与边界相邻的像素点。

例如,可以对全部像素点进行纵向扫描,得到的每排扫描结果对应全部像素点中的每列,每列像素点中两端的像素点为与边界相邻的像素点,因此,可以获取每列扫描结果中两端的像素点作为目标点。

作为一种可选的实施例,从待填充区域的全部像素点中选择目标像素点,包括:使用扫描线种子算法扫描待填充区域的全部像素点,其中,扫描线种子算法用于按行扫描全部像素点;获取通过扫描线种子算法得到的待填充区域中的候选目标像素点,其中,候选目标像素点为每行像素的最左端的像素点和最右端的像素点;根据候选目标像素点确定目标像素点。

具体的,扫描线种子算法可以用于对封闭图形内的区域进行填充,其算法过程为,(1)初始化:堆栈置空,将种子点(x,y)入栈;(2)出栈:若栈空则结束,否则取栈顶元素(x,y);(3)填充并确定种子点所在区段:从种子点(x,y)出发,沿当前扫描线向左、右两个方向填充,直到边界。分别标记区段的左、右端点坐标(x1,y1);(4)确定新种子,在区间(x1,y1)中检查与当前扫描线y上、下相邻的两条扫描线上的像素。若存在非边界、未填充的像素,则把每一区间的最右像素作为种子点压入堆栈,并返回步骤(2)。

根据上述扫描线种子算法可知,在步骤(3)中,算法会从种子点触发,沿当前扫描线向左、右两个方向填充,直到边界,并分别标记区段的左、右端点坐标,上述步骤即为使用扫描线种子算法在扫描每行像素时记录的没行的左、右端点作为候选目标像素点。

作为一种可选的实施例,根据候选目标像素点确定目标像素点,包括:获取每个候选目标像素点与边界的最小距离;获取预设距离阈值;在候选目标像素点中查找对应的最小距离大于预设距离阈值的过滤像素点;从候选目标像素点中去除过滤像素点,得到目标像素点。

每个候选目标像素点距离边界具有最小距离,上述距离阈值用于对候选目标像素点进行过滤,从中排除距离边界较远的像素点,从而排除候选目标像素点中与边界不相邻的点。

在一种可选的实施例中,设置预设距离阈值为一个像素距离,获取每个候选目标像素点与边界的距离后,从中查找是否存在与边界的最小距离大于一个像素距离的候选目标像素点,如果存在,确定与边界的最小距离大于一个像素距离的候选目标像素点为过滤像素点,即从候选目标像素点中去除过滤像素点,候选目标像素点中剩余的像素点即构成目标像素点。

步骤s106,连接目标像素点得到对应的连线。

作为一种可选的实施例,连接目标像素点得到对应的连线,包括:调用安卓模块中的像素点连接函数;使用像素点连接函数对目标像素点进行连接,得到连线。

具体的,上述安卓模块中的像素点连接函数可以通过andoridapi调用,像素点连接函数可以为path中的lineto函数。由于andorid的path本身会进程抗锯齿处理,因此根据目标像素点使用path中的lineto函数对目标像素点进行连接后得到的连接线比较圆滑,视觉效果较好。

步骤s108,使用目标颜色对获得到目标像素点进行绘制。

具体的,上述目标颜色可以为待填充区域的颜色,也可以为边界的颜色,使用目标颜色对连线进行绘制后,待填充区域与边界之间的锯齿被绘制的连线所覆盖,从而使得对待填充区域的填充更加完整,进而缓解了对封闭图形填充时产生的锯齿现象。

使用目标颜色对连线进行绘制,可以通过andoridapi调用covers函数,从而使用待填充区域的颜色对目标像素点进行填充,使得目标像素点与待填充区域的颜色相同。

图5是图4的局部放大图,对比图5和图2可知,经过上述处理后,封闭图形内的填充区域与封闭图形的交界处较为圆滑。

由上可知,本申请上述实施例获取待填充区域的全部像素点,从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为待填充区域与构成待填充区域的边界最接近的像素点,使用目标颜色对获得到目标像素点进行绘制。上述方案通过获取待填充区域的全部像素点中,与边界相邻的目标像素点,并将目标像素点进行连线后,对连线进行绘制,从而使得待填充区域与边界之间的锯齿并被绘制的连接所遮盖,进而使得对待填充区域的填充更加完整,缓解了对封闭图形填充时产生的锯齿现象,解决了现有技术中交互智能平板在为封闭图形填充颜色时,填充色与封闭图形的交界处的锯齿情况较严重的技术问题。

实施例2

根据本发明实施例,提供了一种图形的填充装置的实施例,图6是根据本发明实施例的图形的填充装置的示意图,如图6所示,该装置包括:

获取模块60,用于获取待填充区域的全部像素点。

选择模块62,用于从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为全部像素点中,与构成待填充区域的边界相邻的像素点。

连接模块64,用于连接目标像素点得到对应的连线。

绘制模块66,用于使用目标颜色对获得到目标像素点进行绘制。

作为一种可选的实施例,选择模块包括:扫描子模块,用于使用扫描线种子算法扫描待填充区域的全部像素点,其中,扫描线种子算法用于按行扫描全部像素点;第一获取子模块,用于获取通过扫描线种子算法得到的待填充区域中的候选目标像素点,其中,候选目标像素点为每行像素的最左端的像素点和最右端的像素点;第一确定子模块,用于根据候选目标像素点确定目标像素点。

作为一种可选的实施例,确定子模块包括:第二获取子模块,用于获取每个候选目标像素点与边界的最小距离;第三获取子模块,用于获取预设距离阈值;查找子模块,用于在候选目标像素点中查找对应的最小距离大于预设距离阈值的过滤像素点;过滤子模块,用于从候选目标像素点中去除过滤像素点,得到目标像素点。

作为一种可选的实施例,连接模块包括:调用子模块,用于调用安卓模块中的像素点连接函数;连接子模块,用于使用像素点连接函数对目标像素点进行连接,得到连线。

作为一种可选的实施例,目标颜色为待填充区域的颜色。

实施例3

根据本发明实施例,提供了一种交互智能设备,其特征在于,包括:

处理器;以及

存储介质,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取待填充区域的全部像素点;从待填充区域的全部像素点中选择目标像素点,其中,目标像素点为全部像素点中,与构成待填充区域的边界相邻的像素点;连接目标像素点得到对应的连线;使用目标颜色对连线进行绘制。

进一步的,存储介质还为处理器提供了执行实施例1中其他步骤的指令,此处不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1