一种颜色色块自动识别方法、装置及电子设备与流程
未命名
07-13
阅读:92
评论:0
1.本发明涉及颜色处理技术领域,尤其涉及一种颜色色块自动识别方法、装置及电子设备。
背景技术:
2.色块识别是图像识别的重要部分,有着十分广阔的应用前景,可应用与机器人比赛的场地识别、信件包裹的自动分拣和归类等。
3.现有的色块识别方法,首先需要对待识别的图像进行边缘检测,以提取需要识别的图像中色块的轮廓,然后选取形状确定的色块中的任何一个点并根据该点在图像中的颜色来确定色块的颜色。
4.然而,通过边缘检测的轮廓识别容易受相近颜色的干扰,导致轮廓识别不准确。而通过选取色块中任何一个点的颜色来作为色块的颜色,会使得所选取的颜色无法准确体现色块的实际颜色。
技术实现要素:
5.本发明提供了一种颜色色块自动识别方法、装置及电子设备,用于解决现有的机器对色块自动识别不准确的技术问题。
6.本发明提供了一种颜色色块自动识别方法,包括:对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;根据所述像素点矩阵数据确定各像素点的颜色通道值;根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数;分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列;以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间;根据所述驼峰区间,对所述图像进行色块识别。
7.可选地,所述根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数的步骤,包括:在所述像素点中确定第一基准像素点和第一待匹配像素点,所述第一待匹配像素点为所述第一基准像素点以外的像素点;根据所述第一基准像素点的颜色通道值确定第一像素范围;将所有处于所述第一像素范围内的第一待匹配像素点作为集合像素点添加进所述第一基准像素点对应的像素点集合中;判断是否存在未处于所述第一像素范围内的第一待匹配像素点;若是,在未处于所述第一像素范围内的第一待匹配像素点中确定新的第一基准像素点,并返回根据所述第一基准像素点的颜色通道值确定第一像素范围的步骤;
若否,根据所述颜色通道值统计各所述像素点集合中各集合像素点的个数。
8.可选地,所述分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列的步骤,包括:将个数最大的集合像素点确定为像素原点;以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值大预设数值的第一待排序像素点;按照比所述像素原点对应颜色通道值数值大预设数值的颜色通道的数量,将所述第一待排序像素点排列在所述像素原点右侧;将所有颜色通道的颜色通道值均比所述像素原点对应的颜色通道值大预设数值的第一待排序像素点作为像素原点,并返回以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值大1的第一待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值大的像素点时,输出第一序列;以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值小预设数值的第二待排序像素点;按照比所述像素原点对应颜色通道值数值小预设数值的颜色通道的数量,将所述第二待排序像素点排列在所述像素原点左侧;将所有颜色通道的颜色通道值均比所述像素原点对应的颜色通道值小预设数值的第二待排序像素点作为像素原点,并返回以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值小预设数值的第二待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值小的像素点时,输出第二序列;采用所述第一序列和所述第二序列生成第三序列;将所述集合像素点与所述第三序列进行匹配,生成得到第一像素点序列。
9.可选地,所述以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合的步骤,包括:根据所述第一像素点序列上各集合像素点的个数绘制第一像素点曲线;对所述第一像素点曲线进行平整处理,得到平整曲线;判断所述平整曲线是否存在驼峰;若是,分别以各所述第一像素点序列上个数最多的集合像素点为第二基准像素点;根据所述第二基准像素点的颜色通道值确定第二像素范围;将所有处于所述第二像素范围内的第二待匹配像素点作为目标集合像素点生成所述第二基准像素点对应的目标像素点集合;所述第二待匹配像素点为所述第二基准像素点以外的像素点。
10.可选地,所述对所述第一像素点曲线进行平整处理,得到平整曲线的步骤,包括:按照所述第一像素点序列的排列顺序,获取所述第一像素点曲线上各集合像素点前后预设数量的相邻像素点;计算所述集合像素点与对应的相邻像素点的总个数;根据各所述集合像素点对应的所述总个数,绘制平整曲线。
11.可选地,所述判断所述平整曲线是否存在驼峰的步骤,包括:
获取所述平整曲线的峰值;以所述峰值为基础,按照预设间隔范围确定若干个划线个数值;以所述划线个数值为依据,在所述平整曲线中绘制个数值等高线;确定与所述平整曲线交点最多的个数值等高线作为目标等高线;获取所述目标等高线与所述平整曲线各交点的左相邻像素点和右相邻像素点;判断是否存在个数大于对应的左相邻像素点且小于对应的右相邻像素点的第一交点;若是,获取在所述平整曲线中排序大于所述第一交点,且与所述第一交点相邻的第二交点;当所述第二交点的个数小于对应的左相邻像素点且大于对应的右相邻像素点时,判断所述第一交点和所述第二交点之间存在驼峰。
12.可选地,所述根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间的步骤,包括:分别对各所述目标像素点集合中的目标集合像素点进行排序,得到第二像素点序列;根据所述第二像素点序列上各所述目标像素点的个数绘制第二像素点曲线;查找所述第二像素点曲线上的波谷点;当所述第二像素点序列上存在至少两个波谷点时,以相邻两个波谷点为边界点,生成驼峰区间。
13.可选地,所述根据所述驼峰区间,对所述图像进行色块识别的步骤,包括:确定各所述驼峰区间的代表色;依次判断所述图像的各像素点所属的目标驼峰区间;获取属于同一目标驼峰区间的像素点的位置信息;根据所述位置信息识别各代表色的色块。
14.本发明还提供了一种颜色色块自动识别装置,包括:矩阵化模块,用于对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;颜色通道值确定模块,用于根据所述像素点矩阵数据确定各像素点的颜色通道值;划分模块,用于根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数;排序模块,用于分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列;目标像素点集合生成模块,用于以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;驼峰区间确定模块,用于根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间;识别模块,用于根据所述驼峰区间,对所述图像进行色块识别。
15.本发明还提供了一种电子设备,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如上任一项所述的颜色色块自动识别方法。
16.从以上技术方案可以看出,本发明具有以下优点:本发明公开了一种颜色色块自动识别方法,包括:对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;根据像素点矩阵数据确定各像素点的颜色通道值;根据颜色通道值将像素点划分为一个或多个像素点集合,并统计像素点集合中各集合像素点的个数;分别对各像素点集合中的集合像素点进行排序,得到第一像素点序列;以第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;根据各像素点个数确定各目标像素点集合中的驼峰区间;根据驼峰区间,对图像进行色块识别。
17.本发明通过图像像素点的颜色通道值将像素点划分为多个像素点集合,将图像涉及的颜色进行初步区分,然后根据颜色通道值对像素点集合中的像素点进行排序,并计算各个像素点的个数,然后以数量最多的集合像素点重新划分目标像素点集合,并确定目标像素点集合中的驼峰区间,以根据驼峰区间进一步确定色块的颜色通道值范围,从而根据驼峰区间对图像进行色块识别。由于对色块的颜色通道值范围进行了精确限定,因此提高了色块识别的准确性。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
19.图1为本发明实施例提供的一种颜色分类方法的步骤流程图;图2为本发明另一实施例提供的一种颜色色块自动识别方法的步骤流程图;图3为本发明另一实施例提供的一种颜色色块自动识别装置的结构框图。
具体实施方式
20.本发明实施例提供了一种颜色色块自动识别方法、装置及电子设备,用于解决现有的机器对色块自动识别不准确的技术问题。
21.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
22.请参阅图1,图1为本发明实施例提供的一种颜色分类方法的步骤流程图。
23.本发明提供的一种颜色分类方法,具体可以包括以下步骤:步骤101,对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;像素是指由图像的小方格组成的,这些小方格都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。
24.在获取到需要进行处理的图像后,可以对该图像的像素点进行矩阵化,得到像素
点矩阵数据。
25.在一个示例中,以rgb图像为例,图像像素点矩阵化后的像素点矩阵数据如下:[[[255,255,255],
ꢀ……
,[255,255, 255],],
ꢀ……
, [[24,156,22],
ꢀ……
,[22,155, 21],],[[240,15,26],
ꢀ……
,[242,16, 28],],
……
,[[255,255,255],
ꢀ……
,[255,255, 255],],]步骤102,根据像素点矩阵数据确定各像素点的颜色通道值;颜色通道是指保存图像颜色信息的通道,每个图像都有一个或多个颜色通道,图像中默认的颜色通道数取决于其颜色模式,即一个图像的颜色模式将决定其颜色通道的数量,例如,cmyk图像默认有4个颜色通道,rgb和lab图像有3个颜色通道。每个颜色通道都存放着图像中颜色元素的信息,所有颜色通道中的颜色叠加混合产生图像中像素的颜色。
[0026]
在获取到像素点矩阵数据后,可以从中确定图像的像素点转化为表征颜色通道的颜色数值后的颜色通道值。
[0027]
步骤103,根据颜色通道值将像素点划分为一个或多个像素点集合,并统计像素点集合中各集合像素点的个数;在实际场景中,颜色通道值相近的像素点,其颜色差异较小,因此可以将颜色通道值相近的像素点划分在同一个像素点集合中。
[0028]
以rgb色域为例,像素点a的颜色通道值为[200,80,20],像素点b的颜色通道值为[200,81,20],两者的颜色通道值相近,因此可以将像素点a和像素点b划分在同一个像素点集合中。
[0029]
步骤104,对集合像素点进行排序,得到第一像素点序列;步骤105,以第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;在本发明实施例中,可以对集合像素点进行排序,得到第一像素点序列;然后以各个第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合。
[0030]
在一个示例中,可以以个数最大的集合像素点为中点,结合给定的范围大小确定集合像素点对应的目标像素点集合的像素范围,然后将处于该像素范围内的像素点添加进目标像素点集合中。
[0031]
在一个示例中,假设一个第一像素点序列上个数最大的集合像素点为[200,200,200],给定的范围大小为上下20个像素点,则目标像素点集合的像素范围为[180,180,180]到[220,220,220]之间。
[0032]
步骤106,根据各像素点个数确定各目标像素点集合中的驼峰区间;在本发明实施例中,驼峰区间,是指以目标像素点排序为横坐标,目标像素点个数为纵坐标所形成的曲线中,中间凸起的部分所形成的区间。
[0033]
在本发明实施例中,在获取到目标像素点集合后,可以对目标像素点集合中的像
素点进行排序,并根据目标像素点集合中各像素点的个数确定驼峰区间。
[0034]
步骤107,根据驼峰区间,对图像进行色块识别。
[0035]
在本发明实施例中,色块是指由某一类颜色形成的具有一定形状的结构,每一个色块均表示一类颜色,如红色、蓝色、绿色等,色块的形状则跟所分析的图像的颜色分布有关。
[0036]
在本发明实施例中,可以根据驼峰区间的颜色通道值范围,确定各色块的颜色通道值范围,根据各色块的颜色通道值范围,可以对图像进行色块识别。
[0037]
本发明通过图像像素点的颜色通道值将像素点划分为多个像素点集合,将图像涉及的颜色进行初步区分,然后根据颜色通道值对像素点集合中的像素点进行排序,并计算各个像素点的个数,然后以数量最多的集合像素点重新划分目标像素点集合,并确定目标像素点集合中的驼峰区间,以根据驼峰区间进一步确定色块的颜色通道值范围,从而根据驼峰区间对图像进行色块识别。由于对色块的颜色通道值范围进行了精确限定,因此提高了色块识别的准确性。
[0038]
请参阅图2,图2为本发明另一实施例提供的一种颜色色块自动识别方法的步骤流程图。具体可以包括以下步骤:步骤201,对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;步骤202,根据像素点矩阵数据确定各像素点的颜色通道值;步骤201-202与步骤101-102相同,具体可以参照步骤101-102的描述,此处不再赘述。
[0039]
步骤203,根据颜色通道值将像素点划分为一个或多个像素点集合,并统计像素点集合中各集合像素点的个数;在实际场景中,颜色通道值相近的像素点,其颜色差异较小,因此可以将颜色通道值相近的像素点划分在同一个像素点集合中。
[0040]
在一个示例中,根据颜色通道值将像素点划分为多个像素点集合,并统计像素点集合中各集合像素点的个数的步骤,可以包括以下子步骤:s31,在像素点中确定第一基准像素点和第一待匹配像素点,第一待匹配像素点为第一基准像素点以外的像素点;在具体实现中,可以在像素点中确定一个第一基准像素点。其中,第一基准像素点可以在图像的像素点中随机选取,也可以按照像素点的排列顺序依次选取。本发明对第一基准像素点的选取方式不作具体限定。
[0041]
s32,根据第一基准像素点的颜色通道值确定第一像素范围;在选取了第一基准像素点后,可以根据第一基准像素点的颜色通道值确定第一像素范围。
[0042]
在一个示例中,可以以第一基准像素点每个颜色通道的颜色通道值为基准,上下浮动10个值来确定基准像素点的第一像素范围,通过该第一像素范围,可以生成第一基准像素点对应的像素点集合。
[0043]
例如,以rgb色域为例,假设第一基准像素点的颜色通道值为[200,80,20],则第一基准像素点对应的像素点集合的颜色通道值范围为[190,70,10]到[210,90,30]。
[0044]
s33,将所有处于第一像素范围内的第一待匹配像素点作为集合像素点添加进第
一基准像素点对应的像素点集合中;s34,判断是否存在未处于第一像素范围内的第一待匹配像素点;s35,若是,在未处于第一像素范围内的第一待匹配像素点中确定新的第一基准像素点,并返回根据第一基准像素点的颜色通道值确定第一像素范围的步骤;在确定了第一基准像素点的第一像素范围后,可以依次判断每个待匹配像素点是否存在于第一基准像素点的第一像素范围内,若是,则表征该待匹配像素点的颜色与第一基准像素点相近,此时可以将该待匹配像素点添加进第一基准像素点对应的像素点集合中。当所有待匹配像素点均完成匹配后,可以将匹配失败的待匹配像素点提取作为未匹配像素点,在里面确定新的基准像素点,例如将第一个匹配失败的未匹配像素点作为新的基准像素点,然后建立新的基准像素点的像素点集合,直至所有像素点均已完成像素点集合分类。
[0045]
s36,若否,根据颜色通道值统计各像素点集合中各集合像素点的个数。
[0046]
在完成了所有像素点的分类后,可以根据各集合像素点的颜色通道值对各像素点集合中的集合像素点的个数进行统计,从而得到各个颜色通道值对应的集合像素点的个数。
[0047]
步骤204,分别对各像素点集合中的集合像素点进行排序,得到像素点序列;在本发明实施例中,可以分别对各像素点集合中的集合像素点进行排序,得到第一像素点序列;在一个示例中,步骤204具体可以包括以下子步骤:s41,将个数最大的集合像素点确定为像素原点;s42,以像素原点的颜色通道值为基础,获取至少一个颜色通道值比像素原点对应颜色通道值数值大预设数值的第一待排序像素点;s43,按照比像素原点对应颜色通道值数值大预设数值的颜色通道的数量,将第一待排序像素点排列在像素原点右侧;s44,将所有颜色通道的颜色通道值均比像素原点对应的颜色通道值大预设数值的第一待排序像素点作为像素原点,并返回以像素原点的颜色通道值为基础,获取至少一个颜色通道值比像素原点对应颜色通道值数值大预设数值的第一待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值大的像素点时,输出第一序列;s45,以像素原点的颜色通道值为基础,获取至少一个颜色通道值比像素原点对应颜色通道值数值小预设数值的第二待排序像素点;s46,按照比像素原点对应颜色通道值数值小预设数值的颜色通道的数量,将第二待排序像素点排列在像素原点左侧;s47,将所有颜色通道的颜色通道值均比像素原点对应的颜色通道值小预设数值的第二待排序像素点作为像素原点,并返回以像素原点的颜色通道值为基础,获取至少一个颜色通道值比像素原点对应颜色通道值数值小预设数值的第二待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值小的像素点时,输出第二序列;s48,采用第一序列和第二序列生成第三序列;s49,将集合像素点与第三序列进行匹配,生成得到第一像素点序列。
[0048]
在具体实现中,可以以像素原点的颜色通道值为原点,获取至少一个颜色通道的
颜色通道值比像素原点的颜色通道值大预设数值的像素点作为第一待排序像素点;然后按照比像素原点对应颜色通道值大预设数值的颜色通道的数量,将第一待排序像素点排列在像素原点右侧。其中,颜色通道变化数量相同的像素点可以按照变化的颜色通道值的大小从小到大进行排列,将所有颜色通道的颜色通道值均大预设数值的像素点排列在最右侧,然后以所有颜色通道的颜色通道值均大预设数值的像素点为基础,继续向右侧排列,直至所有的颜色通道的颜色通道值均为255为止。
[0049]
其中,预设数值可以为任意正整数。
[0050]
例如,以预设数值为1为例,假设像素原点为[15,180,50],右边递增排序的像素值可以为 [15,180,50],[16,180,50],[15,180,51],[15,181,50],[16,180,51],[16,181,50],[15,181,51],[16,181,51],[17,181,51],[16,181,52],[16,182,51],[17,181,52],[17,182,51],[16,182,52],[17,182,52],...,[255,255,255],得到第一序列。
[0051]
同理,按照与右侧类似的方式,可以得到像素原点左侧的第二序列;将第一序列与第二序列进行组合,可以得到第三序列。
[0052]
将集合像素点按照第三序列的排列方式进行排列,可以得到由集合像素点排列得到的第一像素点序列。
[0053]
步骤205,以第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;在本发明实施例中,可以对集合像素点进行排序,得到第一像素点序列;然后以各个第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合。
[0054]
在一个示例中,以第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合的步骤,可以包括以下子步骤:s51,根据第一像素点序列上各集合像素点的个数绘制第一像素点曲线;s52,对第一像素点曲线进行平整处理,得到平整曲线;在本发明实施例中,可以根据第一像素点序列上各集合像素点的个数绘制第一像素点曲线,然后对第一像素点曲线进行平整处理,得到平整曲线;平整曲线相比第一像素点曲线,其曲线会更加地平整,有助于驼峰的识别。
[0055]
在一个示例中,对第一像素点曲线进行平整处理,得到平整曲线的步骤,可以包括以下子步骤:s521,按照第一像素点序列的排列顺序,获取第一像素点曲线上各集合像素点前后预设数量的相邻像素点;s522,计算集合像素点与对应的相邻像素点的总个数;s523,根据各集合像素点对应的总个数,绘制平整曲线。
[0056]
在具体实现中,可以按照第一像素点序列的排列顺序,获取第一像素点曲线上各集合像素点前后预设数量的相邻像素点,然后计算集合像素点与对应的相邻像素点的总个数,以集合像素点为横坐标,以各集合像素点对应的总个数为纵坐标,绘制平整曲线。
[0057]
例如,以每个集合像素点获取坐标各1个相邻像素点计算总个数为前提。假设存在以下5个像素点a、b、c、d、e,a的个数为50,b的个数为65,c的个数为85,d的个数为90,e的个数为100。
[0058]
则b、c、d结合相邻节点得到的总个数分别为b:50+65+85=200;c:65+85+90=240;d:
85+90+100=275。由于a左边没有像素点,则a根据与右侧相邻的b的差值为依据假定一个虚拟像素点f:50-(65-50)=35,则a对应的总个数为35+50+65=150;同理,e右边没有像素点,则可以根据与左侧相邻的d的差值为依据假定一个虚拟像素点g:100+(100-90)=110。依据各集合像素点与相邻像素点的总个数,可以绘制平整曲线。
[0059]
s53,判断平整曲线是否存在驼峰;在绘制完成平整曲线后,可以判断平整曲线中是否存在驼峰。
[0060]
在一个示例中,判断平整曲线是否存在驼峰的步骤,包括:s531,获取平整曲线的峰值;s532,以峰值为基础,按照预设间隔范围确定若干个划线个数值;s533,以划线个数值为依据,在平整曲线中绘制个数值等高线;s534,确定与平整曲线交点最多的个数值等高线作为目标等高线;s535,获取目标等高线与平整曲线各交点的左相邻像素点和右相邻像素点;s536,判断是否存在个数大于对应的左相邻像素点且小于对应的右相邻像素点的第一交点;s537,若是,获取在平整曲线中排序大于第一交点,且与第一交点相邻的第二交点;s538,当第二交点的个数小于对应的左相邻像素点且大于对应的右相邻像素点时,判断第一交点和第二交点之间存在驼峰。
[0061]
在具体实现中,可以获取平整曲线的峰值,然后以峰值为基础,按照预设间隔范围确定若干个划线个数值,划线个数值对应平整曲线的纵坐标的数值,以划线个数值为基础,可以在平整曲线中绘制若干条与x轴平行的个数值等高线,个数值等高线会与平整曲线产生交点。接着找到与平整曲线交点最多的个数值等高线作为目标等高线。与平整曲线交点最多表征目标等高线的高度小于所有可能存在的驼峰的高度。找到目标等高线可以找出所有可能存在的驼峰。
[0062]
在找到目标等高线后,可以获取目标等高线与平整曲线各交点的左相邻像素点和右相邻像素点,然后判断是否存在个数大于对应的左相邻像素点且小于对应的右相邻像素点的第一交点。第一交点表征其所处的曲线段的y轴数值大小是随着x轴数值大小的变大而变大的,可以理解为右侧可能存在驼峰。此时可以查找第一交点右侧是否存在个数小于对应的左相邻像素点且大于对应的右相邻像素点的第二交点,若存在,则可以判断第一交点和第二交点之间存在驼峰。
[0063]
s54,若是,分别以各第一像素点序列上个数最多的集合像素点为第二基准像素点;s55,根据第二基准像素点的颜色通道值确定第二像素范围;s56,将所有处于第二像素范围内的第二待匹配像素点作为目标集合像素点生成第二基准像素点对应的目标像素点集合;第二待匹配像素点为第二基准像素点以外的像素点。
[0064]
当平整曲线中存在驼峰时,可以分别以第一像素点序列上个数最多的集合像素点为第二基准像素点,根据第二基准像素点的颜色通道值确定第二像素范围。
[0065]
在实际应用中,可以设置多个不同的像素范围,取可使划分的集合中尽可能都存
在驼峰区间的像素范围作为第二像素范围,然后根据第二像素范围重新将图像的像素点划分到不同的目标像素点集合中。其中,划分目标像素点集合的过程可以参考上述划分像素点集合的过程,此处不再赘述。
[0066]
步骤206,根据各像素点个数确定各目标像素点集合中的驼峰区间;在本发明实施例中,在获取到目标像素点集合后,可以对目标像素点集合中的像素点进行排序,并根据目标像素点集合中各像素点的个数确定驼峰区间。
[0067]
在本发明实施例中,根据各像素点个数确定各目标像素点集合中的驼峰区间的步骤,可以包括以下子步骤:s61,分别对各目标像素点集合中的目标集合像素点进行排序,得到第二像素点序列;s62,根据第二像素点序列上各目标像素点的个数绘制第二像素点曲线;查找第二像素点曲线上的波谷点;s63,当第二像素点序列上存在至少两个波谷点时,以相邻两个波谷点为边界点,生成驼峰区间。
[0068]
波谷,是指横波在正交于传递方向上的极小值,与之相对的极大值则被称为波峰。
[0069]
驼峰区间,是指以目标集合像素点排序为横坐标,目标集合像素点个数为纵坐标所形成的曲线中,中间凸起的部分所形成的区间。
[0070]
在本发明实施例中,在绘制了第二像素点曲线后,可以查找第二像素点曲线上的波谷点,相邻两个波谷点之间的曲线,即为该目标像素点集合里驼峰区间。
[0071]
需要说明的是,一个目标像素点集合绘制的第二像素点曲线上可以有驼峰区间,也可以没有驼峰区间;一个目标像素点集合绘制的第二像素点曲线上还可以有不止1个驼峰区间。
[0072]
处于同一个驼峰区间里的像素点的颜色更为接近,在目标像素点集合中查找驼峰区间,可以进一步地得到图像中各色块的像素范围。若一个目标像素点集合中的目标集合像素点并不能形成驼峰区间,则表征该目标集合像素点对应的像素颜色在所分析的图像中并没有形成相应的色块。
[0073]
步骤207,确定各驼峰区间的代表色;在本发明实施例中,每个驼峰区间可以确定一个代表色,以便于色块进行记录。
[0074]
在一个示例中,可以根据驼峰区间中个数最多的目标集合像素点的颜色通道值,来生成驼峰区间的代表色。
[0075]
步骤208,依次判断图像的各像素点所属的目标驼峰区间;步骤209,获取属于同一目标驼峰区间的像素点的位置信息;步骤210,根据位置信息识别各代表色的色块。
[0076]
在获取到每个驼峰的代表色后,可以依次判断图像的每个像素点的目标驼峰区间,然后获取属于同一目标驼峰区间的像素点的位置信息,根据位置信息在图像中标记出各目标驼峰区间对应的色块,并记录其代表色。
[0077]
本发明通过图像像素点的颜色通道值将像素点划分为多个像素点集合,将图像涉及的颜色进行初步区分,然后根据颜色通道值对像素点集合中的像素点进行排序,并计算各个像素点的个数,然后以数量最多的集合像素点重新划分目标像素点集合,并确定目标
像素点集合中的驼峰区间,以根据驼峰区间进一步确定色块的颜色通道值范围,从而根据驼峰区间对图像进行色块识别。由于对色块的颜色通道值范围进行了精确限定,因此提高了色块识别的准确性。
[0078]
请参阅图3,图3为本发明另一实施例提供的一种颜色色块自动识别装置的结构框图。
[0079]
本发明实施例还提供了一种颜色色块自动识别装置,包括:矩阵化模块301,用于对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;颜色通道值确定模块302,用于根据像素点矩阵数据确定各像素点的颜色通道值;划分模块303,用于根据颜色通道值将像素点划分为一个或多个像素点集合,并统计像素点集合中各集合像素点的个数;排序模块304,用于分别对各像素点集合中的集合像素点进行排序,得到第一像素点序列;目标像素点集合生成模块305,用于以第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;驼峰区间确定模块306,用于根据各像素点个数确定各目标像素点集合中的驼峰区间;识别模块307,用于根据驼峰区间,对图像进行色块识别。
[0080]
在本发明实施例中,划分模块303,包括:第一基准像素点和第一待匹配像素点确定子模块,用于在像素点中确定第一基准像素点和第一待匹配像素点,第一待匹配像素点为第一基准像素点以外的像素点;第一像素范围确定子模块,用于根据第一基准像素点的颜色通道值确定第一像素范围;像素点集合生成子模块,用于将所有处于第一像素范围内的第一待匹配像素点作为集合像素点添加进第一基准像素点对应的像素点集合中;第一判断子模块,用于判断是否存在未处于第一像素范围内的第一待匹配像素点;第一返回子模块,用于若是,在未处于第一像素范围内的第一待匹配像素点中确定新的第一基准像素点,并返回根据第一基准像素点的颜色通道值确定第一像素范围的步骤;个数统计子模块,用于若否,根据颜色通道值统计各像素点集合中各集合像素点的个数。
[0081]
在本发明实施例中,排序模块304,包括:像素原点确定子模块,用于将个数最大的集合像素点确定为像素原点;第一待排序像素点确定子模块,用于以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值大预设数值的第一待排序像素点;第一待排序像素点排列子模块,用于按照比所述像素原点对应颜色通道值数值大预设数值的颜色通道的数量,将所述第一待排序像素点排列在所述像素原点右侧;第一序列生成子模块,用于将所有颜色通道的颜色通道值均比所述像素原点对应
的颜色通道值大预设数值的第一待排序像素点作为像素原点,并返回以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值大预设数值的第一待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值大的像素点时,输出第一序列;第二待排序像素点确定子模块,用于以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值小预设数值的第二待排序像素点;第二待排序像素点排列子模块,用于按照比所述像素原点对应颜色通道值数值小预设数值的颜色通道的数量,将所述第二待排序像素点排列在所述像素原点左侧;第二序列生成子模块,用于将所有颜色通道的颜色通道值均比所述像素原点对应的颜色通道值小预设数值的第二待排序像素点作为像素原点,并返回以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值小预设数值的第二待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值小的像素点时,输出第二序列;第三序列生成子模块,用于采用所述第一序列和所述第二序列生成第三序列;第一像素点序列生成子模块,用于将所述集合像素点与所述第三序列进行匹配,生成得到第一像素点序列。
[0082]
在本发明实施例中,目标像素点集合生成模块305,包括:第一像素点曲线绘制子模块,用于根据第一像素点序列上各集合像素点的个数绘制第一像素点曲线;平整处理子模块,用于对第一像素点曲线进行平整处理,得到平整曲线;驼峰判断子模块,用于判断平整曲线是否存在驼峰;第二基准像素点确定子模块,用于若是,分别以各第一像素点序列上个数最多的集合像素点为第二基准像素点;第二像素范围确定子模块,用于根据第二基准像素点的颜色通道值确定第二像素范围;目标像素点集合生成子模块,用于将所有处于第二像素范围内的第二待匹配像素点作为目标集合像素点生成第二基准像素点对应的目标像素点集合;第二待匹配像素点为第二基准像素点以外的像素点。
[0083]
在本发明实施例中,平整处理子模块,包括:相邻像素点获取单元,用于按照第一像素点序列的排列顺序,获取第一像素点曲线上各集合像素点前后预设数量的相邻像素点;总个数计算单元,用于计算集合像素点与对应的相邻像素点的总个数;平整曲线绘制单元,用于根据各集合像素点对应的总个数,绘制平整曲线。
[0084]
在本发明实施例中,驼峰判断子模块,包括:峰值获取单元,用于获取平整曲线的峰值;划线个数值确定单元,用于以峰值为基础,按照预设间隔范围确定若干个划线个数值;个数值等高线绘制单元,用于以划线个数值为依据,在平整曲线中绘制个数值等
高线;目标等高线确定单元,用于确定与平整曲线交点最多的个数值等高线作为目标等高线;左相邻像素点和右相邻像素点获取单元,用于获取目标等高线与平整曲线各交点的左相邻像素点和右相邻像素点;第一交点确定单元,用于判断是否存在个数大于对应的左相邻像素点且小于对应的右相邻像素点的第一交点;第二交点确定单元,用于若是,获取在平整曲线中排序大于第一交点,且与第一交点相邻的第二交点;驼峰判断单元,用于当第二交点的个数小于对应的左相邻像素点且大于对应的右相邻像素点时,判断第一交点和第二交点之间存在驼峰。
[0085]
在本发明实施例中,驼峰区间确定模块306,包括:第二像素点序列获取子模块,用于分别对各目标像素点集合中的目标集合像素点进行排序,得到第二像素点序列;波谷点查找子模块,用于根据第二像素点序列上各目标像素点的个数绘制第二像素点曲线;查找第二像素点曲线上的波谷点;驼峰区间生成子模块,用于当第二像素点序列上存在至少两个波谷点时,以相邻两个波谷点为边界点,生成驼峰区间。
[0086]
在本发明实施例中,识别模块307,包括:代表色确定子模块,用于确定各驼峰区间的代表色;目标驼峰区间判断子模块,用于依次判断图像的各像素点所属的目标驼峰区间;位置信息获取子模块,用于获取属于同一目标驼峰区间的像素点的位置信息;色块识别子模块,用于根据位置信息识别各代表色的色块。
[0087]
本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:存储器用于存储程序代码,并将程序代码传输给处理器;处理器用于根据程序代码中的指令执行本发明实施例的颜色色块自动识别方法。
[0088]
本发明还实施例提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明实施例的颜色色块自动识别方法。
[0089]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0090]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0091]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0092]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图
中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0093]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0094]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0095]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0096]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0097]
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种颜色色块自动识别方法,其特征在于,包括:对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;根据所述像素点矩阵数据确定各像素点的颜色通道值;根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数;分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列;以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间;根据所述驼峰区间,对所述图像进行色块识别。2.根据权利要求1所述的方法,其特征在于,所述根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数的步骤,包括:在所述像素点中确定第一基准像素点和第一待匹配像素点,所述第一待匹配像素点为所述第一基准像素点以外的像素点;根据所述第一基准像素点的颜色通道值确定第一像素范围;将所有处于所述第一像素范围内的第一待匹配像素点作为集合像素点添加进所述第一基准像素点对应的像素点集合中;判断是否存在未处于所述第一像素范围内的第一待匹配像素点;若是,在未处于所述第一像素范围内的第一待匹配像素点中确定新的第一基准像素点,并返回根据所述第一基准像素点的颜色通道值确定第一像素范围的步骤;若否,根据所述颜色通道值统计各所述像素点集合中各集合像素点的个数。3.根据权利要求1所述的方法,其特征在于,所述分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列的步骤,包括:将个数最大的集合像素点确定为像素原点;以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值大预设数值的第一待排序像素点;按照比所述像素原点对应颜色通道值数值大预设数值的颜色通道的数量,将所述第一待排序像素点排列在所述像素原点右侧;将所有颜色通道的颜色通道值均比所述像素原点对应的颜色通道值大预设数值的第一待排序像素点作为像素原点,并返回以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值大预设数值的第一待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值大的像素点时,输出第一序列;以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值小预设数值的第二待排序像素点;按照比所述像素原点对应颜色通道值数值小预设数值的颜色通道的数量,将所述第二待排序像素点排列在所述像素原点左侧;将所有颜色通道的颜色通道值均比所述像素原点对应的颜色通道值小预设数值的第二待排序像素点作为像素原点,并返回以所述像素原点的颜色通道值为基础,获取至少一个颜色通道值比所述像素原点对应颜色通道值数值小预设数值的第二待排序像素点的步骤,直至不存在颜色通道值比像素原点对应颜色通道值小的像素点时,输出第二序列;
采用所述第一序列和所述第二序列生成第三序列;将所述集合像素点与所述第三序列进行匹配,生成得到第一像素点序列。4.根据权利要求1所述的方法,其特征在于,所述以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合的步骤,包括:根据所述第一像素点序列上各集合像素点的个数绘制第一像素点曲线;对所述第一像素点曲线进行平整处理,得到平整曲线;判断所述平整曲线是否存在驼峰;若是,分别以各所述第一像素点序列上个数最多的集合像素点为第二基准像素点;根据所述第二基准像素点的颜色通道值确定第二像素范围;将所有处于所述第二像素范围内的第二待匹配像素点作为目标集合像素点生成所述第二基准像素点对应的目标像素点集合;所述第二待匹配像素点为所述第二基准像素点以外的像素点。5.根据权利要求4所述的方法,其特征在于,所述对所述第一像素点曲线进行平整处理,得到平整曲线的步骤,包括:按照所述第一像素点序列的排列顺序,获取所述第一像素点曲线上各集合像素点前后预设数量的相邻像素点;计算所述集合像素点与对应的相邻像素点的总个数;根据各所述集合像素点对应的所述总个数,绘制平整曲线。6.根据权利要求4所述的方法,其特征在于,所述判断所述平整曲线是否存在驼峰的步骤,包括:获取所述平整曲线的峰值;以所述峰值为基础,按照预设间隔范围确定若干个划线个数值;以所述划线个数值为依据,在所述平整曲线中绘制个数值等高线;确定与所述平整曲线交点最多的个数值等高线作为目标等高线;获取所述目标等高线与所述平整曲线各交点的左相邻像素点和右相邻像素点;判断是否存在个数大于对应的左相邻像素点且小于对应的右相邻像素点的第一交点;若是,获取在所述平整曲线中排序大于所述第一交点,且与所述第一交点相邻的第二交点;当所述第二交点的个数小于对应的左相邻像素点且大于对应的右相邻像素点时,判断所述第一交点和所述第二交点之间存在驼峰。7.根据权利要求1所述的方法,其特征在于,所述根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间的步骤,包括:分别对各所述目标像素点集合中的目标集合像素点进行排序,得到第二像素点序列;根据所述第二像素点序列上各所述目标像素点的个数绘制第二像素点曲线;查找所述第二像素点曲线上的波谷点;当所述第二像素点序列上存在至少两个波谷点时,以相邻两个波谷点为边界点,生成驼峰区间。8.根据权利要求1所述的方法,其特征在于,所述根据所述驼峰区间,对所述图像进行色块识别的步骤,包括:
确定各所述驼峰区间的代表色;依次判断所述图像的各像素点所属的目标驼峰区间;获取属于同一目标驼峰区间的像素点的位置信息;根据所述位置信息识别各代表色的色块。9.一种颜色色块自动识别装置,其特征在于,包括:矩阵化模块,用于对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;颜色通道值确定模块,用于根据所述像素点矩阵数据确定各像素点的颜色通道值;划分模块,用于根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数;排序模块,用于分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列;目标像素点集合生成模块,用于以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;驼峰区间确定模块,用于根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间;识别模块,用于根据所述驼峰区间,对所述图像进行色块识别。10.一种电子设备,其特征在于,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行权利要求1-8任一项所述的颜色色块自动识别方法。
技术总结
本发明公开了一种颜色色块自动识别方法、装置、电子设备及存储介质,用于解决现有的机器对色块自动识别不准确的技术问题。本发明包括:对预设的图像的像素点进行矩阵化,得到像素点矩阵数据;根据所述像素点矩阵数据确定各像素点的颜色通道值;根据所述颜色通道值将所述像素点划分为一个或多个像素点集合,并统计所述像素点集合中各集合像素点的个数;分别对各所述像素点集合中的集合像素点进行排序,得到第一像素点序列;以所述第一像素点序列上个数最大的集合像素点为基础,生成目标像素点集合;根据各所述像素点个数确定各所述目标像素点集合中的驼峰区间;根据所述驼峰区间,对所述图像进行色块识别。述图像进行色块识别。述图像进行色块识别。
技术研发人员:黄康龙 李华伟 汪亮 赵笑笑 郭令举 任红轩 施兴华 赵宇亮
受保护的技术使用者:广东粤港澳大湾区国家纳米科技创新研究院
技术研发日:2023.06.12
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
