掌桥专利:专业的专利平台
掌桥专利
首页

控件的分割方法及装置、存储介质、电子设备

文献发布时间:2023-06-19 09:35:27


控件的分割方法及装置、存储介质、电子设备

技术领域

本申请涉及图像处理领域,尤其涉及一种控件的分割方法及装置、存储介质、电子设备。

背景技术

在相关技术的一些应用场景中,需要提取整张图片中的控件,进而进一步处理控件,如将设计稿图片转换为代码,但前提需要把控件准确的分割出来。

在相关技术中,存在一些基于边缘检测然后垂直投影进行字符分割的算法,这些算法的字符较简单规则,由于只在一个轴向(一般是X轴)进行检测,因此检测能力有限,只能用于提取车牌等简单场景中的字符,不能应用在背景复杂,色彩复杂,大尺寸,控件类型多的图片中。

针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种控件的分割方法及装置、存储介质、电子设备。

根据本申请实施例的一个方面,提供了一种控件的分割方法,包括:将原图片转换为形态学梯度图;采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图;在所述原图片中分割所述若干个子图,得到控件图标。

进一步,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图,包括:采用第一边缘检测算法在第一轴向检测所述形态学梯度图,生成第一边缘图;将所述第一边缘图切分为若干个第一边缘子图;在所述原图片中切分与所述第一边缘子图对应的第一子图,采用第二边缘检测算法在第二轴向检测若干个第一子图,生成第二边缘图;将所述第二边缘图切分为若干个第二边缘子图;若所述若干个第二边缘子图不符合预设条件,在所述原图片中切分与所述第二边缘子图对应的第二子图,继续迭代检测所述若干个第二子图,直到当前迭代周期生成的边缘子图符合预设条件。

进一步,将所述第一边缘图切分为若干个第一边缘子图包括:对所述第一边缘图在所述第一轴向进行像素值投影,并在所述第一轴向检测所述第一边缘图的非零段;以每个非零段的起始非零线为切分线切分所述第一边缘图,得到若干个第一边缘子图。

进一步,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图,包括:获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在Y轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在X轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

进一步,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图,包括:获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在X轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在Y轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

进一步,在所述原图片中分割所述若干个子图,得到控件图标,包括:针对所述若干个子图中的每个子图,检测所述子图中的非零段个数;若所述子图中的非零段个数为1,在所述原图片中分割所述子图,得到控件图标。

进一步,将原图片转换为形态学梯度图包括:将所述原图片转换为灰度图,其中,所述原图片为RGB格式的彩色图片;将所述灰度图转换为所述形态学梯度图。

根据本申请实施例的另一个方面,还提供了一种控件的分割装置,包括:转换模块,用于将原图片转换为形态学梯度图;处理模块,用于采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图;分割模块,用于在所述原图片中分割所述若干个子图,得到控件图标。

进一步,所述处理模块包括:第一生成单元,用于采用第一边缘检测算法在第一轴向检测所述形态学梯度图,生成第一边缘图;第一切分单元,用于将所述第一边缘图切分为若干个第一边缘子图;第二生成单元,用于在所述原图片中切分与所述第一边缘子图对应的第一子图,采用第二边缘检测算法在第二轴向检测若干个第一子图,生成第二边缘图;第二切分单元,用于将所述第二边缘图切分为若干个第二边缘子图;处理单元,用于若所述若干个第二边缘子图不符合预设条件,在所述原图片中切分与所述第二边缘子图对应的第二子图,继续迭代检测所述若干个第二子图,直到当前迭代周期生成的边缘子图符合预设条件。

进一步,所述第一切分单元包括:检测子单元,用于对所述第一边缘图在所述第一轴向进行像素值投影,并在所述第一轴向检测所述第一边缘图的非零段;切分子单元,用于以每个非零段的起始非零线为切分线切分所述第一边缘图,得到若干个第一边缘子图。

进一步,所述处理模块包括:获取单元,用于获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;第一迭代单元,用于迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在Y轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在X轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

进一步,所述处理模块包括:获取单元,用于获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;第二迭代单元,用于迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在X轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在Y轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

进一步,所述分割模块包括:检测单元,用于针对所述若干个子图中的每个子图,检测所述子图中的非零段个数;分割单元,用于若所述子图中的非零段个数为1,在所述原图片中分割所述子图,得到控件图标。

进一步,所述转换模块包括:第一转换单元,用于将所述原图片转换为灰度图,其中,所述原图片为RGB格式的彩色图片;第二转换单元,用于将所述灰度图转换为所述形态学梯度图。

根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。

根据本申请实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

在本申请实施例中,将原图片转换为形态学梯度图,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,在每个迭代周期生成若干个子图,在原图片中分割若干个子图,得到控件图标,通过对原图片进行形态学梯度的预处理,可以克服复杂图片容易过滤低梯度控件的弊端,提高控件的识别率,通过采用两种边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,可以提高控件的检测精度,解决了相关技术中控件检测精度低的技术问题,较高了控件分割的精度,提高了鲁棒性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的一种控件的分割方法的流程图;

图2是本发明实施例的边缘图的效果图;

图3是本发明实施例通过非零段切割边缘图的示意图;

图4是本发明实施例的在原图中切分控件的效果图;

图5是本发明实施例获取上限阈值和下限阈值的流程图;

图6是本发明实施例在一个具体场景中的实施流程图;

图7是根据本发明实施例的一种控件的分割装置的结构框图;

图8是本发明实施例的一种电子设备的结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在本实施例中提供了一种控件的分割方法,图1是根据本发明实施例的一种控件的分割方法的流程图,如图1所示,该流程包括如下步骤:

步骤S102,将原图片转换为形态学梯度图;

在本实施例中的原图片可以是照片、屏内截图、视频截图、电子海报图等应用场景中的图片,原图片中包括若干控件,控件可以是图片中的字符、人物、景物、道具等围成区域。

步骤S104,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,在每个迭代周期生成若干个子图;

可选的,第一边缘检测算法和第二边缘检测算法分别采用不同的上下限阈值组合,在二维坐标的两个轴向交替检测形态学梯度图,并切分出子图。

步骤S106,在原图片中分割若干个子图,得到控件图标;

通过上述步骤,将原图片转换为形态学梯度图,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,在每个迭代周期生成若干个子图,在原图片中分割若干个子图,得到控件图标,通过对原图片进行形态学梯度的预处理,可以克服复杂图片容易过滤低梯度控件的弊端,提高控件的识别率,通过采用两种边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,可以提高控件的检测精度,解决了相关技术中控件检测精度低的技术问题,较高了控件分割的精度,提高了鲁棒性。

针对本实施例上述步骤S104,其中的第一边缘检测算法和第二边缘检测算法是一种canny边缘检测算法,实现步骤包括:对待检测图片(在本实施例中指形态学梯度图)高斯平滑滤波,以降低图片噪声;计算滤波后的图片的梯度信息(包括强度和方向);根据梯度信息对图片中的像素点进行非极大值抑制,以消除边缘误检测;最后用双阈值算法检测和连接边缘,以生成边缘图。其中,双阈值包括上限阈值T1和下限阈值T2,图像中的像素点如果大于上限阈值则认为必然是边缘(称为强边缘,strong edge),小于下限阈值T2则认为必然不是边缘,两者之间的则认为是候选项(称为弱边缘,weak edge),需进行进一步处理,假设两类边缘经过非极大值抑制之后的边缘点中,梯度值超过T1的称为强边缘,梯度值小于T1大于T2的称为弱边缘,梯度小于T2的不是边缘。可以肯定的是,强边缘必然是边缘点,因此T1的值较高,以要求像素点的梯度值足够大(变化足够剧烈),而弱边缘可能是边缘,也可能是噪声,可以通过边缘滞后跟踪、区域生长等算法来确定,如当弱边缘的周围8邻域(分别正上、正下、正左、正右、右前、左前、右下、右上8个方向的区域)有强边缘点存在时,就将该弱边缘点变成强边缘点,以此来实现对强边缘的补充。

在本实施例的一个实施方式中,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,在每个迭代周期生成若干个子图,包括:

S11,采用第一边缘检测算法在第一轴向检测形态学梯度图,生成第一边缘图;

生成第一边缘图的流程包括:对待检测的形态学梯度图进行高斯平滑滤波,以降低图片噪声;计算滤波后的图片的梯度信息(包括强度和方向);根据梯度信息对图片中的像素点进行非极大值抑制,以消除边缘误检测;最后用双阈值算法在第一轴向对图片进行检测和连接边缘,以生成第一边缘图。

图2是本发明实施例的边缘图的效果图,以白色像素点为边界点,围成边缘图(图中文字无实际含义),其中,白色像素点为像素值为255的像素点,黑色像素点为像素值为0的像素点。

S12,将第一边缘图切分为若干个第一边缘子图;

在一个示例中,将第一边缘图切分为若干个第一边缘子图包括:对第一边缘图在第一轴向进行像素值投影,并在第一轴向检测第一边缘图的非零段;以每个非零段的起始非零线为切分线切分第一边缘图,得到若干个第一边缘子图。

在此以第一轴向为Y轴,第二轴向为X轴为例进行说明,通过像素值投影,可以统计像素矩阵中每行像素或每列像素的数量,进而确定当前像素行或者像素列是否为非零段,如果每行或者每列的像素值的总和不为零,则为非零段。

S13,在原图片中切分与第一边缘子图对应的第一子图,采用第二边缘检测算法在第二轴向检测若干个第一子图,生成第二边缘图;

在本实施例中,第一子图是原图片中的一部分,每个第一边缘子图对应原图中的一个第一子图,由于第一边缘图是对原图片进行边缘化后得到图片,因此第一边缘图与原图片在尺寸上是相同的,因此可以参照由第一边缘图切分得到的若干个第一边缘子图,在原图片中切分得到若干个对应的第一子图。

生成第二边缘图的流程包括:对待检测的第一子图进行高斯平滑滤波,以降低图片噪声;计算滤波后的图片的梯度信息(包括强度和方向);根据梯度信息对图片中的像素点进行非极大值抑制,以消除边缘误检测;最后用双阈值算法在第二轴向对图片进行检测和连接边缘,以生成第二边缘图。

S14,将第二边缘图切分为若干个第二边缘子图;

与上述第一边缘图类似,将第二边缘图切分为若干个第二边缘子图包括:对第二边缘图在第二轴向进行像素值投影,并在第二轴向检测第二边缘图的非零段;以每个非零段的起始非零线为切分线切分第二边缘图,得到若干个第二边缘子图。例如,图3是本发明实施例通过非零段切割边缘图的示意图,第二轴向为X轴,第二边缘图通过在X轴进行像素值投影,统计第二边缘图的像素矩阵中每列的像素值总和,可以得到像素矩阵中每列的像素值依次为00332025,第3、4、5、7、8列为非零段,剩下的1、2、6列为零段,通过切割得到四个边缘子图(分别对应图3中的边缘子图1、边缘子图2、边缘子图3、边缘子图4),分别由第1~2列、3~5列、6列、7~8列的像素组成。

S15,若干个第二边缘子图不符合预设条件,在原图片中切分与第二边缘子图对应的第二子图,继续迭代检测若干个第二子图,直到当前迭代周期生成的边缘子图符合预设条件。

本实施例的预设条件可以通过检测精度来设置,在检测精度最高时,预设条件为当前迭代周期切割得到边缘子图的非零段个数为1。在一个实施方式中,在原图片中分割若干个子图,得到控件图标,包括:针对若干个子图中的每个子图,检测子图中的非零段个数;若子图中的非零段个数为1,确定符合预定的预设条件,停止迭代,在原图片中分割子图,得到控件图标。

图4是本发明实施例的在原图中切分控件的效果图,每个框对应一个控件(图4中的彩色未示出,图中文字无实际含义),与图2所示的边缘图对应。

本实施例在迭代检测形态学梯度图生成若干个子图时,可以根据形态学梯度图的类型选择第一边缘检测算法和第二边缘检测算法的检测顺序,如根据原图片或形态学梯度图的布局类型选择两种边缘检测算法的检测顺序,在每个迭代周期,纵向布局的图片(如瀑布图)先采用第二边缘检测算法在横轴(二维坐标的X轴)检测,然后继续采用第一边缘检测算法在纵轴(二维坐标的Y轴)检测,直到迭代结束,横向布局的图片先采用第一边缘检测算法在纵轴检测,然后继续采用第二边缘检测算法在横轴检测,直到迭代结束。

在本实施例中,不管第一边缘检测算法还是第二边缘检测算法,上限阈值和下限阈值可以人为指定,也可以设计算法来自适应的指定,通过设置不同的阈值组合,可以实现不同的检测效果。在一个采用算法设定上限阈值和下限阈值的实例中,在X轴采用全局迭代法设定边缘检测算法的上限阈值,通过OTSU(类间方差最大化阈值分割算法)设定边缘检测算法的下限阈值,可以克服了边缘检测算法的虚假边缘问题。同时,对Y轴则采用OTSU阈值和0.1*阈值作为边缘检测算法的上下限阈值。在X轴采用全局迭代法和OTSU的上下限阈值的边缘检测算法时,分别对形态学梯度图进行全局迭代法二值化,得到最优阈值T1,对梯度图进行OTSU二值化,得到最优阈值T2。

在一个实施方式中,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,在每个迭代周期生成若干个子图,包括:获取第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取第二边缘检测算法的第二上限阈值和第二下限阈值;迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于第一上限阈值和第一下限阈值采用第一边缘检测算法在Y轴检测形态学梯度图,生成若干个第N子图;基于第二上限阈值和第二下限阈值采用第二边缘检测算法在X轴检测若干个第N子图,生成若干个第N+1子图,判断若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

针对Y轴和X轴分别使用了不同的canny边缘检测算法,两种canny边缘检测算法使用的上限阈值和下限阈值不同。然后将边缘向Y轴和X轴交替投影,切分为子图,然后对子图递归检测和投影。

在另一个实施方式中,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测形态学梯度图,在每个迭代周期生成若干个子图,包括:获取第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取第二边缘检测算法的第二上限阈值和第二下限阈值;迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于第一上限阈值和第一下限阈值采用第一边缘检测算法在X轴检测形态学梯度图,生成若干个第N子图;基于第二上限阈值和第二下限阈值采用第二边缘检测算法在Y轴检测若干个第N子图,生成若干个第N+1子图,判断若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

针对Y轴和X轴分别使用了不同的canny边缘检测算法,两种canny边缘检测算法使用的上限阈值和下限阈值不同。然后将边缘向X轴和Y轴交替投影,切分为子图,然后对子图递归检测和投影。

图5是本发明实施例获取上限阈值和下限阈值的流程图,流程包括:确定RGB格式的原图,即RGB图,将RGB图转换为灰度图,对灰度图进行3*3的形态学梯度检测,得到梯度图,分别选择两种算法(选择全局迭代法和选择OTSU),对梯度图进行全局迭代法进行二值化处理,得到S,最后以T和0.5*S分别为上限阈值和下限阈值开始执行边缘边缘。通过该流程得到的上限阈值和下限阈值可以应用其中一个轴向(如应用在X轴),也可以同时应用在两个轴向。通过对原图片进行自适应处理,生成边缘检测的上限阈值和下限阈值,可以减少检测生成的虚假边缘。

可选的,将原图片转换为形态学梯度图包括:将原图片转换为灰度图,其中,原图片为RGB格式的彩色图片;将灰度图转换为形态学梯度图。

需要说明的是,原图片也可以是cmyk(青、洋红、黄、黑)等格式的彩色图片,可以先将cmyk等格式的图片转换为RGB格式,然后再通过YUV映射,将彩色图转换为灰度图,在将灰度图转换为形态学梯度图的过程中,通过对灰度图进行3*3的形态学梯度检测,可以将灰度图转换为形态学梯度图,通过引入形态学梯度的图片预处理,可以克服复杂图片对低梯度的控件容易过滤掉的弊端,提高控件的识别率。

图6是本发明实施例在一个具体场景中的实施流程图,如图6所示,流程包括以下步骤:将RGB图转换为灰度图;将灰度图转为形态学梯度图(图中简称为梯度图);分别选择OTSU和全局迭代法对梯度图进行二值化处理,得到T值和S值,将T和0.1*T分别设定为在Y轴进行边缘检测的上限阈值和下限阈值,将T和0.5*S分别设定为在X轴进行边缘检测的上限阈值和下限阈值;从梯度图的Y轴开始进行边缘检测,生成边缘子图,对边缘子图进行Y轴投影,并检测非零段,判断非零段的数量是否大于1,记录判断结果,并从Y轴将原图切分为若干个子图,然后针对每个子图继续转灰度图,将灰度图转为梯度图,从梯度图的X轴开始进行边缘检测,生成边缘子图,判断边缘子图的非零段的数量是否大于1,若是,开始下一个迭代周期;若否,且Y轴投影的非零段的判断结果也是否,迭代结束,按照最后一个迭代周期在X轴生成的边缘子图对应切分原图,每个原图的子图对应一个控件图案,然后继续判断最后一个迭代周期中X轴的边缘检测结果是否有非零段,若否,流程结束,若是,对控件位置进行校正后流程结束。

通过本实施例的方案,引入形态学梯度预处理,可以克服复杂图片对低梯度的控件容易过滤掉的弊端,采用Y轴和X轴交替投影法,先对Y轴投影切分,然后将子图对X轴投影,X轴切出来的子图又开始对Y轴投影,以此迭代,直到不能被分割为止。实现了高精度的控件分割,也提高了控件分割过程的鲁棒性。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种控件的分割装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是根据本发明实施例的一种控件的分割装置的结构框图,如图7所示,该装置包括:转换模块70,处理模块72,分割模块74,其中,

转换模块70,用于将原图片转换为形态学梯度图;

处理模块72,用于采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图;

分割模块74,用于在所述原图片中分割所述若干个子图,得到控件图标。

可选的,所述处理模块包括:第一生成单元,用于采用第一边缘检测算法在第一轴向检测所述形态学梯度图,生成第一边缘图;第一切分单元,用于将所述第一边缘图切分为若干个第一边缘子图;第二生成单元,用于在所述原图片中切分与所述第一边缘子图对应的第一子图,采用第二边缘检测算法在第二轴向检测若干个第一子图,生成第二边缘图;第二切分单元,用于将所述第二边缘图切分为若干个第二边缘子图;处理单元,用于若所述若干个第二边缘子图不符合预设条件,在所述原图片中切分与所述第二边缘子图对应的第二子图,继续迭代检测所述若干个第二子图,直到当前迭代周期生成的边缘子图符合预设条件。

可选的,所述第一切分单元包括:检测子单元,用于对所述第一边缘图在所述第一轴向进行像素值投影,并在所述第一轴向检测所述第一边缘图的非零段;切分子单元,用于以每个非零段的起始非零线为切分线切分所述第一边缘图,得到若干个第一边缘子图。

可选的,所述处理模块包括:获取单元,用于获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;第一迭代单元,用于迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在Y轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在X轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

可选的,所述处理模块包括:获取单元,用于获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;第二迭代单元,用于迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在X轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在Y轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

可选的,所述分割模块包括:检测单元,用于针对所述若干个子图中的每个子图,检测所述子图中的非零段个数;分割单元,用于若所述子图中的非零段个数为1,在所述原图片中分割所述子图,得到控件图标。

可选的,所述转换模块包括:第一转换单元,用于将所述原图片转换为灰度图,其中,所述原图片为RGB格式的彩色图片;第二转换单元,用于将所述灰度图转换为所述形态学梯度图。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本申请实施例还提供了一种电子设备,图8是本发明实施例的一种电子设备的结构图,如图8所示,包括处理器81、通信接口82、存储器83和通信总线84,其中,处理器81,通信接口82,存储器83通过通信总线84完成相互间的通信,存储器83,用于存放计算机程序;处理器81,用于执行存储器83上所存放的程序时,实现如下步骤:将原图片转换为形态学梯度图;采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图;在所述原图片中分割所述若干个子图,得到控件图标。

进一步,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图,包括:采用第一边缘检测算法在第一轴向检测所述形态学梯度图,生成第一边缘图;将所述第一边缘图切分为若干个第一边缘子图;在所述原图片中切分与所述第一边缘子图对应的第一子图,采用第二边缘检测算法在第二轴向检测若干个第一子图,生成第二边缘图;将所述第二边缘图切分为若干个第二边缘子图;若所述若干个第二边缘子图不符合预设条件,在所述原图片中切分与所述第二边缘子图对应的第二子图,继续迭代检测所述若干个第二子图,直到当前迭代周期生成的边缘子图符合预设条件。

进一步,将所述第一边缘图切分为若干个第一边缘子图包括:对所述第一边缘图在所述第一轴向进行像素值投影,并在所述第一轴向检测所述第一边缘图的非零段;以每个非零段的起始非零线为切分线切分所述第一边缘图,得到若干个第一边缘子图。

进一步,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图,包括:获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在Y轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在X轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

进一步,采用第一边缘检测算法和第二边缘检测算法分别在第一轴向和第二轴向迭代检测所述形态学梯度图,在每个迭代周期生成若干个子图,包括:获取所述第一边缘检测算法的第一上限阈值和第一下限阈值,以及获取所述第二边缘检测算法的第二上限阈值和第二下限阈值;第二迭代单元,用于迭代执行以下步骤,直到当前周期的边缘子图符合预设条件:基于所述第一上限阈值和第一下限阈值采用第一边缘检测算法在X轴检测所述形态学梯度图,生成若干个第N子图;基于所述第二上限阈值和所述第二下限阈值采用所述第二边缘检测算法在Y轴检测所述若干个第N子图,生成若干个第N+1子图,判断所述若干个第N+1子图对应的边缘子图是否符合预设条件,其中,N为大于0的整数。

进一步,在所述原图片中分割所述若干个子图,得到控件图标,包括:针对所述若干个子图中的每个子图,检测所述子图中的非零段个数;若所述子图中的非零段个数为1,在所述原图片中分割所述子图,得到控件图标。

进一步,将原图片转换为形态学梯度图包括:将所述原图片转换为灰度图,其中,所述原图片为RGB格式的彩色图片;将所述灰度图转换为所述形态学梯度图。

上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述终端与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的控件的分割方法。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的控件的分割方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

相关技术
  • 控件的分割方法及装置、存储介质、电子设备
  • 控件的触发方法和装置、存储介质、电子设备
技术分类

06120112223127