一种图像处理方法及装置与流程

文档序号:17667576发布日期:2019-05-15 22:49阅读:156来源:国知局
一种图像处理方法及装置与流程

本申请涉及图像处理技术领域,特别是涉及一种图像处理方法及装置。



背景技术:

图像中的连通域是指图像中具有相同灰度值且位置相邻的像素点所组成的图像区域,连通域的识别在图像处理中应用较广泛,例如车牌识别,拼图类游戏中使用的轮廓图等。

尤其在拼图类游戏中,大量使用由白色和黑色组成的轮廓图,玩家将轮廓图中各白色连通域填充上不同的颜色,进而达到将黑白的轮廓图变成彩色填充图的目的。

然而,拼图类游戏中所采用的轮廓图是根据实际拍摄的彩色图所得到的。具体地,游戏制作人员通过人工识图,并手绘彩色图中的连通域边界,进而得到黑白的轮廓图。这样的制作过程不仅耗时,而且浪费人力资源。



技术实现要素:

本申请实施例的目的在于提供一种图像处理方法及装置,以解决人工识别图像中的连通域耗时且浪费人力资源的问题。具体技术方案如下:

第一方面,本申请实施例提供了一种图像处理方法,所述方法包括:

对待处理图像进行二值化处理,获得待处理二值化图像;其中,所述待处理二值化图像包括:轮廓图像区域与非轮廓图像区域,所述轮廓图像区域中的像素点的灰度值为第一灰度值,所述非轮廓图像区域中的像素点的灰度值为第二灰度值;

基于所述第二灰度值的像素点,通过漫水填充算法确定目标像素点;

记录所述目标像素点。

可选地,所述基于所述第二灰度值的像素点,通过漫水填充算法确定目标像素点,包括:

从所述待处理二值化图像中选取所述第二灰度值的像素点,作为起始像素点;

从所述起始像素点开始,通过漫水填充算法确定目标像素点,并将所述目标像素点的灰度值设置为预设灰度值。

可选地,所述方法还包括:

将所述预设灰度值的像素点的灰度值设置为所述第一灰度值;

将所得到的图像确定为待处理二值化图像,并返回执行所述基于所述第二灰度值的像素点,通过漫水填充算法确定目标像素点的步骤。

可选地,所述从所述起始像素点开始,通过漫水填充算法确定目标像素点,并将所述目标像素点的灰度值设置为预设灰度值,包括:

将所述起始像素点的灰度值设置为预设灰度值;

检测与所述起始像素点相邻的邻居像素点是否为所述第二灰度值;

如果是,将所述相邻像素点设置为所述预设灰度值,将所述相邻像素点作为起始像素点,并返回执行所述检测与所述起始像素点相邻的邻居像素点是否为所述第二灰度值的步骤。

可选地,所述从所述待处理二值化图像中选取所述第二灰度值的像素点,作为起始像素点,包括:

按照预设顺序,对所述待处理二值化图像中的像素点进行遍历;

将第一次遍历到的所述第二灰度值的像素点确定为起始像素点。

可选地,所述对待处理图像进行二值化处理,获得待处理二值化图像,包括:

将待处理图像进行二值化处理;

对经过二值化处理后的待处理图像进行预设次数的图像平滑处理;

将图像平滑处理后的待处理图像中,除所述第一灰度值和所述第二灰度值以外的其他灰度值的像素点设置为所述第一灰度值,将所得到的图像确定为待处理二值化图像。

第二方面,本申请实施例提供了一种图像处理装置,所述装置包括:

处理模块,用于对待处理图像进行二值化处理,获得待处理二值化图像;其中,所述待处理二值化图像包括:轮廓图像区域与非轮廓图像区域,所述轮廓图像区域中的像素点的灰度值为第一灰度值,所述非轮廓图像区域中的像素点的灰度值为第二灰度值;

确定模块,用于基于所述第二灰度值的像素点,通过漫水填充算法确定目标像素点;

记录模块,用于记录所述目标像素点。

可选地,所述确定模块具体用于:

从所述待处理二值化图像中选取所述第二灰度值的像素点,作为起始像素点;

从所述起始像素点开始,通过漫水填充算法确定目标像素点,并将所述目标像素点的灰度值设置为预设灰度值。

可选地,所述装置还包括:

设置模块,用于将所述预设灰度值的像素点的灰度值设置为所述第一灰度值;

确定模块,用于将所得到的图像确定为待处理二值化图像,并触发所述确定模块用于执行所述基于所述第二灰度值的像素点,通过漫水填充算法确定目标像素点的步骤。

可选地,所述确定模块具体用于:

将所述起始像素点的灰度值设置为预设灰度值;

检测与所述起始像素点相邻的邻居像素点是否为所述第二灰度值;

如果是,将所述相邻像素点设置为所述预设灰度值,将所述相邻像素点作为起始像素点,并返回执行所述检测与所述起始像素点相邻的邻居像素点是否为所述第二灰度值的步骤。

可选地,所述确定模块具体用于:

按照预设顺序,对所述待处理二值化图像中的像素点进行遍历;

将第一次遍历到的所述第二灰度值的像素点确定为起始像素点。

可选地,所述处理模块具体用于:

将待处理图像进行二值化处理;

对经过二值化处理后的所述待处理图像进行预设次数的图像平滑处理;

将图像平滑处理后的所述待处理图像中,除所述第一灰度值和所述第二灰度值以外的其他灰度值的像素点设置为所述第一灰度值,将所得到的图像确定为待处理二值化图像。

第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的图像处理方法步骤。

第四方面,本申请实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的图像处理方法步骤。

本申请实施例提供的技术方案中,对待处理图像进行二值化处理,获得待处理二值化图像,基于第二灰度值的像素点,通过漫水填充算法确定目标像素点,并记录目标像素点。通过本申请实施例提供的技术方案,将待处理图像进行二值化处理后得到待处理二值化图像,该待处理二值化图像中通过第一灰度值和第二灰度值将轮廓图像区域与非轮廓图像区域区分开,对于每一个非轮廓图像区域,通过漫水填充算法以确定属于同一连通域的目标像素点并记录,进而在不需要人工参与的情况下可以对图像中的连通域进行识别,节省人力资源。

附图说明

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

图1为本申请实施例提供的图像处理方法的一种流程图;

图2为本申请实施例提供的图像处理装置的一种结构示意图;

图3为本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

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

为了解决通过人工识别图像中的连通域耗时且浪费人力资源的问题,本申请实施例提供了一种图像处理方法及装置,其中,该图像处理方法包括:

对待处理图像进行二值化处理,获得待处理二值化图像;其中,待处理二值化图像包括:轮廓图像区域与非轮廓图像区域,轮廓图像区域中的像素点的灰度值为第一灰度值,非轮廓图像区域中的像素点的灰度值为第二灰度值;

基于第二灰度值的像素点,通过漫水填充算法确定目标像素点;

记录目标像素点。

本申请实施例提供的技术方案中,对待处理图像进行二值化处理,获得待处理二值化图像,基于第二灰度值的像素点,通过漫水填充算法确定目标像素点,并记录目标像素点。通过本申请实施例提供的技术方案,将待处理图像进行二值化处理后得到待处理二值化图像,该待处理二值化图像中通过第一灰度值和第二灰度值将轮廓图像区域与非轮廓图像区域区分开,对于每一个非轮廓图像区域,通过漫水填充算法以确定属于同一连通域的目标像素点并记录,进而在不需要人工参与的情况下可以对图像中的连通域进行识别,节省人力资源。

下面首先对本申请实施例提供的一种图像处理方法进行介绍。本申请实施例提供了一种图像处理方法,如图1所示,包括如下步骤。

s101,对待处理图像进行二值化处理,获得待处理二值化图像。

其中,待处理图像可以是彩色图、灰度图、黑白图等任一种图像。当待处理图像为彩色图像时的一种实现方式中,可以将彩色的待处理图像转换为单通道的灰度图,其中,转换的方式可以是通过opencv进行转换。在得到灰度图之后,将灰度图进行二值化处理,进而可以得到二值化图像,所得到的二值化图像中仅包括黑白两种颜色,即仅包含灰度值为0和灰度值为255的像素点。

另外,在进行二值化处理之后,可以对所得到的二值化图像进行降噪处理,以提高二值化图像的质量。

其中,待处理二值化图像包括:轮廓图像区域和非轮廓图像区域,轮廓图像区域中的像素点的灰度值为第一灰度值,非轮廓图像区域中的像素点的灰度值为第二灰度值。

轮廓图像区域用于凸显出待处理二值化图像中人、物等目标的轮廓,可以认为,轮廓图像区域由线条组成,各线条组合形成凸显目标的轮廓。非轮廓图像区域即为待处理二值化图像中除轮廓图像区域以外的区域。

基于待处理二值化图像中仅包含灰度值为0和灰度值为255的像素点,针对第一灰度值和第二灰度值,可以包括以下两种情况:第一种情况,第一灰度值为0,第二灰度值为255;第二种情况,第一灰度值为255,第二灰度值为0。

针对第一种情况,非轮廓图像区域为白色,轮廓图像区域为黑色,即可以认为,待处理二值化图像中以白色为底色,用黑色的线条凸显目标的轮廓。针对第二种情况,非轮廓图像区域为黑色,轮廓图像区域为白色,即可以认为,待处理二值化图像中以黑色为底色,用白色的线条凸显目标的轮廓。

本申请实施例中以第一种情况为例进行说明。

一种实施方式中,在对待处理图像进行二值化处理之后,所得到的图像为二值化图像,即所得到的图像中仅包含灰度值为0和灰度值为255的像素点。对经过二值化处理后的待处理图像进行图像平滑处理,进行图像平滑处理的次数可以是预设次数,该预设次数可以是自定义的。

例如,预设次数为3次时,则先进行一次图像平滑处理,可以得到第一次处理后的图像,再对该第一次处理后的图像进行图像平滑处理,得到第二次处理后的图像,最后再对该第二次处理后的图像进行图像平滑处理,得到第三次处理后的图像,该第三次处理后的图像即为经过三次图像平滑处理后的图像。

其中,图像平滑处理的一种实现方式中,遍历经过二值化处理后的待处理图像中的像素点,针对每一像素点,检测该像素点的相邻像素点的灰度值是否相同,若不相同,则计算相邻像素点的灰度值的和,将所计算出的和除以相邻像素点的数量,即可以得到均值,将该均值或者与该均值相近的值作为该像素点的灰度值。

例如,一个像素点的相邻像素点包括像素点1和像素点2,其中,像素点1的灰度值为0,像素点2的灰度值为255,基于像素点1和像素点2的灰度值,可以得到均值为127.5,则可以将128作为像素点的灰度值。

除了上述实现方式以外,图像平滑处理还可以通过高斯滤波、中值滤波等方式实现。

在经过图像平滑处理后的待处理图像中,除了灰度值为0和255的像素点以外,还包括其他灰度值的像素点。此时,可以将除第一灰度值和第二灰度值以外的其他灰度值的像素点设置为第一灰度值,在所得到的图像中仅包含第一灰度值和第二灰度值的像素点,即所得到的图像仅包含黑白两种颜色的像素点,可以将所得到的图像确定为待处理二值化图像。

例如,第一灰度值为0,第二灰度值为255,在经过图像平滑处理后的待处理图像中还包括灰度值为128的像素点,则可以将灰度值为128的像素点设置为灰度值为0,并将所得到的仅包含灰度值0和255的图像确定为待处理二值化图像。

s102,基于第二灰度值的像素点,通过漫水填充算法确定目标像素点。

其中,漫水填充算法是从一个像素点开始找到该像素点所在连通域内的其他像素点,进而识别出该连通域。

一种实施方式中,从待处理二值化图像中选取第二灰度值的像素点,作为起始像素点。

第二灰度值的像素点为非轮廓图像区域的像素点,即可以认为,第二灰度值的像素点为待处理二值化图像的连通域中的像素点。当待处理二值化图像中包含多个连通域时,所选取的起始像素点可以是任一连通域中的任一像素点。

一种实现方式中,按照预设顺序,对待处理二值化图像中的像素点进行遍历,并将第一次遍历到的第二灰度值的像素点确定为起始像素点。

其中,预设顺序可以是自定义设定的,预设顺序可以是按照从左至右、从上至下的顺序,还可以是按照从右至左、从上至下的顺序,当然,预设顺序还可以是自定义的其他顺序,在此不作限定。

按照预设顺序遍历待处理二值化图像中的像素点,可以避免遗漏第二灰度值的像素点,进而避免遗漏待处理二值化图像中的连通域,使得待处理二值化图像中的每一连通域均能被识别。

在从待处理二值化图像中选取起始像素点之后,从起始像素点开始,通过漫水填充算法确定目标像素点,并将该目标像素点的灰度值设置为预设灰度值。

其中,预设灰度值为第一灰度值和第二灰度值以外的其他灰度值,该预设灰度值可以是自定义设定的。通过将遍历到的像素点设置为预设灰度值的像素点,以区分于其他未被遍历到的像素点。

例如,预设灰度值为128,利用漫水填充算法遍历到的像素点均为灰度值255的像素点,将这些遍历到的像素点设置为灰度值为128,则在完成漫水填充算法之后,所得到的图像中包括灰度值为0、255以及128的像素点,其中,灰度值128的像素点为同一连通域内的像素点。记录灰度值128的像素点,即确定出目标像素点所在的连通域。

一种实现方式中,从起始像素点开始,将起始像素点的灰度值设置为预设灰度值,并检测与该起始像素点相邻的邻居像素点是否为第二灰度值。

其中,搜索与起始像素点相邻的邻居像素点的方式可以是四向连通的方式,即从起始像素点出发,从上、下、左、右四个方向分别进行搜索。还可以是八向连通的方式,即从起始像素点出发,从上、下、左、右、左上、左下、右上、右上八个方向分别进行搜索。除了上述两种方式以外,还可以是其他的搜索方式,在此不作限定。

若检测到邻居像素点为第二灰度值,可以确定该邻居像素点与起始像素点属于同一连通域,则可以将该相邻像素点设置为预设灰度值,并将该相邻像素点作为起始像素点,返回执行检测与起始像素点相邻的邻居像素点是否为第二灰度值的步骤,直至检测出与起始像素点相邻的邻居像素点均不是第二灰度值。

若检测到邻居像素点均不是第二灰度值,则可以确定当前的目标像素点为与轮廓图像区域相邻的像素点,即已遍历至起始像素点所在连通域的边界。

s103,记录目标像素点。

所记录的目标像素点属于同一连通域,也就是说,所记录的目标像素点即为一个连通域内的像素点。

一种实现方式中,可以记录连通域的标识与像素点的坐标的对应关系,其中,标识与坐标的对应关系表示该坐标的像素点为该标识的连通域所包含的像素点中的其中一个像素点。因此,标识与坐标的对应关系是一对多的对应关系,即一个连通域是包含多个像素点的。例如,标识1对应坐标(1,1)和(1,2),表示坐标(1,1)的像素点和坐标(1,2)的像素点均属于标识1的连通域。

一种实施方式中,在完成漫水填充算法之后,即已遍历完起始像素点所在的连通域内的所有像素点,且该连通域内的所有像素点的灰度值均为预设灰度值。也就是说,此时的图像中预设灰度值的像素点均属于同一连通域内的像素点,在对预设灰度值的像素点记录之后,将预设灰度值的像素点的灰度值设置为第一灰度值,用于对该连通域进行标识,表示该连通域已被识别。

将预设灰度值的像素点设置为第一灰度值之后,所得到的图像中仍只包含第一灰度值和第二灰度值的像素点,将该图像确定为待处理二值化图像,并返回执行基于第二灰度值的像素点,通过漫水填充算法确定目标像素点的步骤,直至待处理二值化图像中不存在第二灰度值的像素点。此时,即完成对待处理图像中连通域的识别。

本申请实施例提供的技术方案中,对待处理图像进行二值化处理,获得待处理二值化图像,基于第二灰度值的像素点,通过漫水填充算法确定目标像素点,并记录目标像素点。通过本申请实施例提供的技术方案,将待处理图像进行二值化处理后得到待处理二值化图像,该待处理二值化图像中通过第一灰度值和第二灰度值将轮廓图像区域与非轮廓图像区域区分开,对于每一个非轮廓图像区域,通过漫水填充算法以确定属于同一连通域的目标像素点并记录,进而在不需要人工参与的情况下可以对图像中的连通域进行识别,节省人力资源。

相应于上述图像处理方式实施例,本申请实施例还提供一种图像处理装置实施例,如图2所示,该图像处理装置包括:

处理模块210,用于对待处理图像进行二值化处理,获得待处理二值化图像;其中,待处理二值化图像包括:轮廓图像区域与非轮廓图像区域,轮廓图像区域中的像素点的灰度值为第一灰度值,非轮廓图像区域中的像素点的灰度值为第二灰度值;

确定模块220,用于基于第二灰度值的像素点,通过漫水填充算法确定目标像素点;

记录模块230,用于记录目标像素点。

一种实施方式中,确定模块220具体用于:

从待处理二值化图像中选取第二灰度值的像素点,作为起始像素点;

从起始像素点开始,通过漫水填充算法确定目标像素点,并将目标像素点的灰度值设置为预设灰度值。

一种实施方式中,该装置还可以包括:

设置模块,用于将预设灰度值的像素点的灰度值设置为第一灰度值;

确定模块,用于将所得到的图像确定为待处理二值化图像,并触发确定模块220用于执行基于第二灰度值的像素点,通过漫水填充算法确定目标像素点的步骤。

一种实施方式中,确定模块220具体用于:

将起始像素点的灰度值设置为预设灰度值;

检测与起始像素点相邻的邻居像素点是否为第二灰度值;

如果是,将相邻像素点设置为预设灰度值,将相邻像素点作为起始像素点,并返回执行检测与起始像素点相邻的邻居像素点是否为第二灰度值的步骤。

一种实施方式中,确定模块220具体用于:

按照预设顺序,对待处理二值化图像中的像素点进行遍历;

将第一次遍历到的第二灰度值的像素点确定为起始像素点。

一种实施方式中,处理模块210具体用于:

将待处理图像进行二值化处理;

对经过二值化处理后的待处理图像进行预设次数的图像平滑处理;

将图像平滑处理后的所述待处理图像中,除第一灰度值和第二灰度值以外的其他灰度值的像素点设置为第一灰度值,将所得到的图像确定为待处理二值化图像。

本申请实施例提供的技术方案中,对待处理图像进行二值化处理,获得待处理二值化图像,基于第二灰度值的像素点,通过漫水填充算法确定目标像素点,并记录目标像素点。通过本申请实施例提供的技术方案,将待处理图像进行二值化处理后得到待处理二值化图像,该待处理二值化图像中通过第一灰度值和第二灰度值将轮廓图像区域与非轮廓图像区域区分开,对于每一个非轮廓图像区域,通过漫水填充算法以确定属于同一连通域的目标像素点并记录,进而在不需要人工参与的情况下可以对图像中的连通域进行识别,节省人力资源。

相应于上述图像处理方式实施例,本申请实施例还提供了一种电子设备,如图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信;

存储器330,用于存放计算机程序;

处理器310,用于执行存储器330上所存放的程序时,实现如下步骤:

对待处理图像进行二值化处理,获得待处理二值化图像;其中,待处理二值化图像包括:轮廓图像区域与非轮廓图像区域,轮廓图像区域中的像素点的灰度值为第一灰度值,非轮廓图像区域中的像素点的灰度值为第二灰度值;

基于第二灰度值的像素点,通过漫水填充算法确定目标像素点;

记录目标像素点。

本申请实施例提供的技术方案中,对待处理图像进行二值化处理,获得待处理二值化图像,基于第二灰度值的像素点,通过漫水填充算法确定目标像素点,并记录目标像素点。通过本申请实施例提供的技术方案,将待处理图像进行二值化处理后得到待处理二值化图像,该待处理二值化图像中通过第一灰度值和第二灰度值将轮廓图像区域与非轮廓图像区域区分开,对于每一个非轮廓图像区域,通过漫水填充算法以确定属于同一连通域的目标像素点并记录,进而在不需要人工参与的情况下可以对图像中的连通域进行识别,节省人力资源。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

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

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

相应于上述图像处理方式实施例,本申请实施例还提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的图像处理方法步骤。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图像处理装置、电子设备以及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见图像处理方法实施例的部分说明即可。

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

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