图像主色识别方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 10:16:30
技术领域
本公开涉及计算机技术领域,尤其涉及一种图像主色识别方法、装置、电子设备及存储介质。
背景技术
颜色作为描述图像的主要特征,在视觉设计中占有非常重要的地位。例如海报配色、界面设计(UI)都需要参考画面的整体色调,使得经验丰富的设计师可以作出精美的画面。而在多媒体应用当中,颜色可以作为图像的预览,例如访问一系列照片的时候,在未加载出图像之前,可以先显示一个主色调来代替,以向人眼传达照片的主色调信息,从而方便用户对照片进行筛查。因此,准确衡量一张照片的主色调非常重要。
其中,Gif图像在网络中的应用非常广泛,而Gif图像的生成,使用的是八叉树进行颜色归类,其只针对RGB颜色进行划分。因而,Gif图像的颜色分类使用的八叉树归类法只适用于已知区间(即[0,255])的划分,并且对色差的计算只在RGB色彩空间进行,并不适用于人眼对色彩的感知。即八叉树归类法只适合Gif图像,即只适用于低画质要求的场景,不适用于常规的图像色彩提取场景。
另外,提取图像的主色,目前使用最广泛的聚类算法是K-Mean。例如某些浏览器的开源代码中,包含K-Mean算法对RGB颜色进行聚类,从而取像素数量最多的那个颜色作为图标背景色。但是,K-Means算法有一定误差,导致使用简单的RGB欧氏距离作为色差进行聚类得到的结果并不符合人眼感知的实际情况。
由上述可知,采用现有技术中的主色提取方法,所提取的图像的主色与人眼所感知到的主色的误差较大。
发明内容
为了解决背景技术中记载的技术问题,本公开实施例提供了一种图像主色识别方法、装置、电子设备及存储介质,本公开的技术方案如下:
根据本公开实施例的第一方面,提供了一种图像主色识别方法,所述方法包括:
对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果,其中,所述第一次聚类处理结果包括多种第一候选颜色;
获取每一种所述第一候选颜色的第一权重值,其中,一个所述第一权重值表示一种所述第一候选颜色属于所述待处理图像的主色的权重;
将所述第一权重值最大的所述第一候选颜色确定为所述第一次聚类处理获得的主色;
在i取2~N中的每一个整数时,依次执行如下过程:
对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果,其中,所述第i次聚类处理结果中包括多种第i候选颜色;
计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差;
根据所述色差,确定所述第i次聚类处理获得的主色;
将第N次聚类处理获得的主色作为所述待处理图像的主色;
其中,N大于或等于2。
可选的,所述对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果之前,所述方法还包括:
将所述待处理图像转换为CIELab色彩空间下的目标图像;
所述对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果,包括:
对所述目标图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
所述对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果,包括:
对所述目标图像的颜色进行所述第i次聚类处理,得到所述第i次聚类处理结果。
可选的,所述对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果,包括:
采用基于k-means++的聚类算法,在k取3时,对所述待处理图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
其中,k表示聚类算法中的聚类数量。
可选的,在i=2时,所述对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果,包括:
采用基于k-means++的聚类算法,在k取8时,对所述待处理图像的颜色进行第二次聚类处理,得到第二次聚类处理结果。
可选的,所述第一次聚类处理结果还包括所述待处理图像中属于每一种所述第一候选颜色的像素点的数量;
所述获取每一种所述第一候选颜色的第一权重值,包括:
计算每一种所述第一候选颜色的RGB分量的方差;
在j取1~M中的每一个整数时,计算所述待处理图像中属于第j种所述第一候选颜色的像素点的数量,与第j种所述第一候选颜色的RGB分量的方差的第一乘积,并将所述第一乘积作为第j种所述第一候选颜色的第一权重值,其中,M为所述第一次聚类处理结果中包括的所述第一候选颜色的数量。
可选的,所述计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差,包括:
计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的欧氏距离,并将所述欧氏距离作为色差;
或者,
利用CIE94色差算法,计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的色差。
可选的,所述第i次处理结果还包括所述待处理图像中属于每一种所述第i候选颜色的像素点的数量;
所述根据所述色差,确定所述第i次聚类处理获得的主色,包括:
在h取1~H中的每一个整数时,计算第h种所述第i候选颜色与所述第i-1次聚类处理获得的主色的色差,与所述待处理图像中属于第h种所述第i候选颜色的像素点的数量的第二乘积,并将所述第二乘积作为第h种所述第i候选颜色的第二权重值,其中,H表示所述第i次聚类处理结果中包括的所述第i候选颜色的数量;
将所述第二权重值最大的所述第i候选颜色,作为所述第i次聚类处理获得的主色。
根据本公开实施例的第二方面,提供了一种图像主色识别装置,所述装置包括:
第一处理模块,被配置为对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果,其中,所述第一次聚类处理结果包括多种第一候选颜色;
第一权重值获取模块,被配置为获取每一种所述第一候选颜色的第一权重值,其中,一个所述第一权重值表示一种所述第一候选颜色属于所述待处理图像的主色的权重;
第一主色确定模块,被配置为将所述第一权重值最大的所述第一候选颜色确定为所述第一次聚类处理获得的主色;
第二处理模块,被配置为在i取2~N中的每一个整数时,依次执行如下过程:
对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果,其中,所述第i次聚类处理结果中包括多种第i候选颜色;
计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差;
根据所述色差,确定所述第i次聚类处理获得的主色;
第二主色确定模块,被配置为将第N次聚类处理获得的主色作为所述待处理图像的主色;
其中,N大于或等于2。
可选的,所述装置还包括:
图像转换模块,被配置为将所述待处理图像转换为CIELab色彩空间下的目标图像;
所述第一处理模块具体被配置为:
对所述目标图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
所述第二处理模块在对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果时,具体被配置为:
对所述目标图像的颜色进行所述第i次聚类处理,得到所述第i次聚类处理结果。
可选的,所述第一处理模块具体被配置为:
采用基于k-means++的聚类算法,在k取3时,对所述待处理图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
其中,k表示聚类算法中的聚类数量。
可选的,在i=2时,所述第二处理模块在对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果时,具体被配置为:
采用基于k-means++的聚类算法,在k取8时,对所述待处理图像的颜色进行第二次聚类处理,得到第二次聚类处理结果。
可选的,所述第一次聚类处理结果还包括所述待处理图像中属于每一种所述第一候选颜色的像素点的数量;所述第一权重值获取模块包括:
方差计算子模块,被配置为计算每一种所述第一候选颜色的RGB分量的方差;
第一权重计算子模块,被配置为在j取1~M中的每一个整数时,计算所述待处理图像中属于第j种所述第一候选颜色的像素点的数量,与第j种所述第一候选颜色的RGB分量的方差的第一乘积,并将所述第一乘积作为第j种所述第一候选颜色的第一权重值,其中,M为所述第一次聚类处理结果中包括的所述第一候选颜色的数量。
可选的,所述第二处理模块在计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差时,具体被配置为:
计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的欧氏距离,并将所述欧氏距离作为色差;
或者,
利用CIE94色差算法,计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的色差。
可选的,所述第i次处理结果还包括所述待处理图像中属于每一种所述第i候选颜色的像素点的数量;所述第二处理模块在根据所述色差,确定所述第i次聚类处理获得的主色时,具体被配置为:
在h取1~H中的每一个整数时,计算第h种所述第i候选颜色与所述第i-1次聚类处理获得的主色的色差,与所述待处理图像中属于第h种所述第i候选颜色的像素点的数量的第二乘积,并将所述第二乘积作为第h种所述第i候选颜色的第二权重值,其中,H表示所述第i次聚类处理结果中包括的所述第i候选颜色的数量;
将所述第二权重值最大的所述第i候选颜色,作为所述第i次聚类处理获得的主色。
根据本公开实施例的第三方面,提供一种电子设备,该电子设备包括:
处理器;
用于存储该处理器可执行指令的存储器;
其中,该处理器被配置为执行所述指令,以实现本公开提供的图像主色识别方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备实现本公开提供的图像主色识别方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行时,使得电子设备能够执行如本公开提供的图像主色识别方法。
与现有技术相比,本发明具有以下优点:
本公开的实施例,对待处理图像的颜色进行至少两次聚类处理,在第一次聚类处理后,获取第一次聚类处理获得的每一种第一候选颜色的第一权重值,然后将第一权重值最大的第一候选颜色确定为第一次聚类处理获得的主色,并针对后续的每一次聚类处理,分别计算本次聚类处理获得的每一种候选颜色与前一次聚类处理获得的主色之间的色差,从而根据色差选出本次聚类处理获得的主色,进而将最后一次聚类处理获得的主色作为待处理图像的主色。
由此可见,本公开的实施例,基于前一次聚类处理获得的主色,确定本次聚类处理获得的主色,从而使得聚类处理次数越多时,最终获得的待处理图像的主色的准确度越高,进而越符合人眼从待出图像中所感知到的主色,因此,本公开的实施例,能够在一定程度上提升识别图像主色的准确度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1是本公开实施例提供的一种图像主色识别方法的流程图;
图2是本公开实施例提供的另一种图像主色识别方法的流程图;
图3是本公开实施例提供的图像主色识别方法的具体实施方式的流程示意图;
图4是确定出的一批样本图像的主色的示意图之一;
图5是确定出的一批样本图像的主色的示意图之二;
图6是采用两种不同方法确定出的同一个图像的主色的对比示意图;
图7是根据一示例性实施例示出的一种图像主色识别装置的框图;
图8是根据一示例性实施例示出的一种电子设备的框图;
图9是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了解决采用现有技术中的主色提取方法所提取的图像的主色与人眼所感知到的主色的误差较大的问题,本公开实施例提供了一种图像主色识别方法、装置、电子设备及存储介质。
根据本公开实施例的第一方面,提供了一种图像主色识别方法,如图1所示,该图像主色识别方法可以包括以下步骤:
步骤101:对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果。
其中,所述第一次聚类处理结果包括多种第一候选颜色。
另外,聚类算法又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。本公开的实施例中,对待处理图像进行聚类处理,以对待处理图像中的各个像素点的颜色进行分类,因而对待处理图像的颜色进行一次聚类处理之后,则可以得到多种候选颜色,即每一次对待处理图像进行聚类处理之后,则可以得到待处理图像中的像素点的颜色分别归类为哪一种候选颜色。
此外,本公开实施例中使用的聚类算法可以是k-means以及其改进算法,或者其他聚类算法,即可以根据场景复杂度、计算强度来选择适合的聚类算法。
步骤102:获取每一种所述第一候选颜色的第一权重值。
其中,一个所述第一权重值表示一种所述第一候选颜色属于所述待处理图像的主色的权重。
步骤103:将所述第一权重值最大的所述第一候选颜色确定为所述第一次聚类处理获得的主色。
本公开的实施例中,对待处理图像进行第一次聚类处理后,可以得到多种第一候选颜色。其中,这多种第一候选颜色中存在一种颜色可以作为待处理图像的主色。因此,通过步骤101中获得第一次聚类处理后的多种第一候选颜色后,可以进一步从这多种第一候选颜色中选出一种颜色,以作为第一次聚类处理获得的主色。
另外,本公开的实施例中,在步骤103之后,在i取2~N中的每一个整数时,执行如下步骤104~107。
步骤104:对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果。
其中,第i次聚类处理结果中包括多种第i候选颜色。
步骤105:计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差。
步骤106:根据所述色差,确定所述第i次聚类处理获得的主色。
步骤107:将第N次聚类处理获得的主色作为所述待处理图像的主色。
其中,N大于或等于2。
由上述步骤104~107可知,在i=2时,对待处理图像的颜色进行第二次聚类处理,得到第二次聚类处理结果,其中,第二次聚类处理结果包括多种第二候选颜色;从而再计算每一种第二候选颜色与第一次聚类处理获得的主色的色差;进而再根据色差,确定出第二次聚类处理获得的主色。
在i=3时,对待处理图像的颜色进行第三次聚类处理,得到第三次聚类处理结果,其中,第三次聚类处理结果包括多种第三候选颜色;从而再计算每一种第三候选颜色与第二次聚类处理获得的主色的色差;进而再根据色差,确定出第三次聚类处理获得的主色。
直到i=N时停止对待处理图像进行聚类处理,从而将第N次聚类处理获得的主色作为待处理图像的主色。
由上述可知,本公开的实施例,对待处理图像的颜色进行至少两次聚类处理,在第一次聚类处理后,获取第一次聚类处理获得的每一种第一候选颜色的第一权重值,然后将第一权重值最大的第一候选颜色确定为第一次聚类处理获得的主色,并针对后续的每一次聚类处理,分别计算本次聚类处理获得的每一种候选颜色与前一次聚类处理获得的主色之间的色差,从而根据色差选出本次聚类处理获得的主色,进而将最后一次聚类处理获得的主色作为待处理图像的主色。
由此可见,本公开的实施例,基于前一次聚类处理获得的主色,确定本次聚类处理获得的主色,从而使得聚类处理次数越多时,最终获得的待处理图像的主色的准确度越高,进而越符合人眼从待出图像中所感知到的主色,因此,本公开的实施例,能够在一定程度上提升识别图像主色的准确度。
可选的,所述对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果之前,所述方法还包括:
将所述待处理图像转换为CIELab色彩空间下的目标图像;
所述对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果,包括:
对所述目标图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
所述对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果,包括:
对所述目标图像的颜色进行所述第i次聚类处理,得到所述第i次聚类处理结果。
其中,CIELab也称为CIE的L*a*b*表或有时简称为简单的“Lab”的色彩空间,它的颜色的三个值表示为:L*为从黑色(0)到白色(100)的亮度,a*从绿色(-)到红色(+)的亮度,b*从蓝色(-)到黄色(+)的亮度。CIELab被设计为使这些值中相同数量的数字变化对应于大致相同数量的视觉感知变化。
另外,CIELab色彩空间具有可见光谱生理感知的色差标准,因此,将待处理图像转换为CIELab色彩空间下的目标图像之后,再对目标图像分别执行上述步骤101~107,则可以进一步提升确定待处理图像的主色的准确度,进而使得确定的主色更加符合人眼的感知。
可选的,所述第一次聚类处理结果还包括所述待处理图像中属于每一种所述第一候选颜色的像素点的数量;所述获取每一种所述第一候选颜色的第一权重值,包括:
计算每一种所述第一候选颜色的RGB分量的方差;
在j取1~M中的每一个整数时,计算所述待处理图像中属于第j种所述第一候选颜色的像素点的数量,与第j种所述第一候选颜色的RGB分量的方差的第一乘积,并将所述第一乘积作为第j种所述第一候选颜色的第一权重值,其中,M为所述第一次聚类处理结果中包括的所述第一候选颜色的数量。
例如在第一次聚类处理时k=3,则对于获取到的三种第一候选颜色,通过计算每一种第一候选颜色的RGB分量的方差,并与待处理图像中属于相应第一候选颜色的像素点的数量相乘,得到一个关于色彩敏感程度的权重(即第一权重值)。因为越靠近黑色[0,0,0]和白色[255,255,255],其RGB分量的方差越小,而人眼往往对浓郁色彩比较敏感,对灰度敏感度不高,所以本公开的实施例中,使用RGB分量的方差乘以其所属第一候选颜色对应的像素点数量(即待处理图像中属于第一候选颜色的像素点的数量),来衡量该第一候选颜色是否属于主色,从而可以避开单纯的提取出大面积的黑色或白色。
可选的,所述计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差,包括:
计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的欧氏距离,并将所述欧氏距离作为色差;
或者,
利用CIE94色差算法,计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的色差。
由上述可知,本公开的实施例中可以采用欧氏距离,或者CIE94算法计算每一种第i候选颜色与第i-1次聚类处理获得的主色的色差。其中,相较于欧氏距离,CIE94算法更适用于人眼对色差感知的实际情况。
可选的,所述第i次处理结果还包括所述待处理图像中属于每一种所述第i候选颜色的像素点的数量;
所述根据所述色差,确定所述第i次聚类处理获得的主色,包括:
在h取1~H中的每一个整数时,计算第h种所述第i候选颜色与所述第i-1次聚类处理获得的主色的色差,与所述待处理图像中属于第h种所述第i候选颜色的像素点的数量的第二乘积,并将所述第二乘积作为第h种所述第i候选颜色的第二权重值,其中,H表示所述第i次聚类处理结果中包括的所述第i候选颜色的数量;
将所述第二权重值最大的所述第i候选颜色,作为所述第i次聚类处理获得的主色。
由上述可知,本公开的实施例中,在根据色差从第i次聚类处理结果中包括的多种第i候颜色中选择第i次聚类处理获得的主色时,可以结合待处理图像中属于每一种第i候选颜色的像素点的数量,从而进一步提升确定待处理图像的主色的准确度。
根据本公开实施例的第二方面,提供了一种图像主色识别方法,如图2所示,该图像主色识别方法可以包括以下步骤:
步骤201:采用基于k-means++的聚类算法,在k取3时,对所述待处理图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果。
其中,k表示聚类算法中的聚类数量。在采用基于k-means++的聚类算法对待处理图像进行第一次聚类处理时,如果取k=1,即算出全部像素的平均值,则无法衡量任何有效色彩;如果k=2,则是粗暴的进行非黑即白的划分;唯有k=3,可以得到相对意义上的黑、灰、白,三种主要色调。并且,在第一次聚类处理中,如果k>3,会得到多种色调,不符合初步评估的需求。
另外,聚类算法的原理即对样本进行临近原则归类,算出每个类组的质心的过程。现有技术中存在很多种聚类算法,本公开的实施例中可以使用k-means++算法。
此外,k-means为一种聚类算法。最初来自信号处理,其目的是划分n个观测点到k个集群中,其中每个观测点属于簇与最近的平均(聚类中心或群集的质心),作为原型的集群。k-means++是k-means的改进算法。
步骤202:获取每一种所述第一候选颜色的第一权重值。
其中,一个所述第一权重值表示一种所述第一候选颜色属于所述待处理图像的主色的权重。
步骤203:将所述第一权重值最大的所述第一候选颜色确定为所述第一次聚类处理获得的主色。
其中,本公开的实施例中,对待处理图像进行第一次聚类处理后,可以得到多种第一候选颜色。其中,这多种第一候选颜色中存在一种颜色可以作为待处理图像的主色,因此,通过步骤201中获得第一次聚类处理后的多种第一候选颜色后,可以进一步从这多种第一候选颜色中选出一种颜色,以作为第一次聚类处理获得的主色。
可选的,所述第一次聚类处理结果还包括所述待处理图像中属于每一种所述第一候选颜色的像素点的数量;
所述获取每一种所述第一候选颜色的第一权重值,包括:
计算每一种所述第一候选颜色的RGB分量的方差;
在j取1~M中的每一个整数时,计算所述待处理图像中属于第j种所述第一候选颜色的像素点的数量,与第j种所述第一候选颜色的RGB分量的方差的第一乘积,并将所述第一乘积作为第j种所述第一候选颜色的第一权重值,其中,M为所述第一次聚类处理结果中包括的所述第一候选颜色的数量。
其中,例如在第一次聚类处理时k=3,则第一次聚类处理结果中包括三种第一候选颜色,例如分别为D、E、F三种颜色,待处理图像中属于颜色D的像素点的数量为X1,属于颜色E的像素点的数量为X2,属于颜色F的像素点的数量为X3,且颜色D的RGB分量为r1、g1、b1,颜色E的RGB分量为r2、g2、b2,颜色F的RGB分量为r3、g3、b3,则颜色D的第一权重值Y1、颜色E的第一权重值Y2、颜色F的第一权重值Y3的计算公式如下:
另外,例如在第一次聚类处理时k=3,则对于获取到的三种第一候选颜色,通过计算每一种第一候选颜色的RGB分量的方差,并与待处理图像中属于相应第一候选颜色的像素点的数量相乘,得到一个关于色彩敏感程度的权重(即第一权重值)。因为越靠近黑色[0,0,0]和白色[255,255,255],其RGB分量的方差越小,而人眼往往对浓郁色彩比较敏感,对灰度敏感度不高,所以本公开的实施例中,使用RGB分量的方差乘以其所属第一候选颜色对应的像素点数量(即待处理图像中属于第一候选颜色的像素点的数量),来作为衡量该第一候选颜色是否属于主色,从而可以避开单纯的提取出大面积的黑色或白色。
此外,通常情况下,只依赖图像中属于第一候选颜色的像素点的数量来决定主色会大概率会得到深黑或浅白,而宏观来看,这样无法传递有效信息。其中,针对同一批样本图像,只依赖样本图像中属于第一候选颜色的像素点的数量选出的主色的示意图如4所示,而依赖每一种第一候选颜色的RGB分量的方差,与样本图像中属于相应第一候选颜色的像素点的数量的乘积,选出的主色的示意图如图5所示。其中,图4和图5中的每一个方格表示一个样本图像的主色,且图4与图5中相同位置上的方格表示同一个样本图像的主色。
由图4与图5对比可知,本公开的实施例中,依赖每一种第一候选颜色的RGB分量的方差,与图像中属于相应第一候选颜色的像素点的数量的乘积,能够从第一次聚类处理后的多种第一候选颜色中,选出更加准确的主色。
步骤204:采用基于k-means++的聚类算法,在k取8时,对所述待处理图像的颜色进行第二次聚类处理,得到第二次聚类处理结果。
由上述可知,本公开的实施例,采用了两次不同数量的聚类方法,模拟人眼感知的由粗到细的识别过程,这样得到的颜色最符合人眼感知的实际情况。
其中,白光可以分离出七种颜色,对应在光谱图上是:红橙黄绿青蓝紫。另外还有一个黑色。所以这里取k=8,可以涵盖这八种颜色。
步骤205:计算每一种所述第二候选颜色与第一次聚类处理获得的主色的色差。
可选的,所述计算每一种所述第二候选颜色与第一次聚类处理获得的主色的色差,包括:
计算每一种所述第二候选颜色与所述第一次聚类处理获得的主色在CIELab色彩空间下的欧氏距离,并将所述欧氏距离作为色差;
或者,
利用CIE94色差算法,计算每一种所述第二候选颜色与所述第一次聚类处理获得的主色在CIELab色彩空间下的色差。
由上述可知,本公开的实施例中可以采用如下两种方式计算每一种第二候选颜色与第一次聚类处理获得的主色的色差。
方式一:欧氏距离方法,例如需要计算颜色H与颜色Q在CIELab色差空间下的欧氏距离,则可以依据如下公式进行计算:
其中,
方式二:CIE94算法,例如需要计算颜色H与颜色Q在CIELab色差空间下的色差,则可以依据如下公式进行计算:
其中,
表1 k
由上述可知,本公开的实施例中可以采用欧氏距离,或者CIE94算法计算每一种第i候选颜色与第i-1次聚类处理获得的主色的色差。其中,相较于欧氏距离,CIE94算法更适用于人眼对色差感知的实际情况。
此外,需要说明的是,上述CIE94色差算法,还可由更高级的CIEDE2000替代,其复杂度和准确度更高。
步骤206:根据所述色差,确定第二次聚类处理获得的主色。
可选的,所述第二次处理结果还包括所述待处理图像中属于每一种第二候选颜色的像素点的数量;所述根据色差,确定第二次聚类处理获得的主色,包括:
在h取1~2中的每一个整数时,计算第h种所述第二候选颜色与所述第一次聚类处理获得的主色的色差,与所述待处理图像中属于第h种所述第二候选颜色的像素点的数量的第二乘积,并将所述第二乘积作为第h种所述第二候选颜色的第二权重值;
将所述第二权重值最大的所述第二候选颜色,作为所述第二次聚类处理获得的主色。
由上述可知,本公开的实施例中,在根据色差从第二次聚类处理结果中包括的多种第二候颜色中选择第二次聚类处理获得的主色时,可以结合待处理图像中属于每一种第二候选颜色的像素点的数量,从而进一步提升确定待处理图像的主色的准确度。
步骤207:将第二次聚类处理获得的主色作为所述待处理图像的主色。
可选的,所述采用基于k-means++的聚类算法,在k取3时,对所述待处理图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果之前,所述方法还包括:
将所述待处理图像转换为CIELab色彩空间下的目标图像;
所述采用基于k-means++的聚类算法,在k取3时,对所述待处理图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果,包括:
采用基于k-means++的聚类算法,在k取3时,对所述目标图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
所述采用基于k-means++的聚类算法,在k取8时,对所述待处理图像的颜色进行第二次聚类处理,得到第二次聚类处理结果,包括:
采用基于k-means++的聚类算法,在k取8时,对所述目标图像的颜色进行第二次聚类处理,得到第二次聚类处理结果。
其中,CIELab色彩空间具有可见光谱生理感知的色差标准,因此,将待处理图像转换为CIELab色彩空间下的目标图像之后,再对目标图像分别执行上述步骤201~207,则可以进一步提升确定待处理图像的主色的准确度,进而使得确定的主色更加符合人眼的感知。
综上所述,本公开的实施例的图像主色识别方法的具体实施方式的原理示意图可如图3所示。具体如下所述:
首先,将待处理图像(例如为RGB图像)转换成CIELab色彩空间下的目标图像;
其次,采用k-means++算法,对目标图像的颜色进行一次k=3的聚类,并对聚类结果中包括的每一种第一候选颜色进行RGB分量的方差计算,从而计算每一种第一候选颜色的RGB分量的方差与其对应的像素数量的乘积,并将该乘积作为第一候选颜色的第一权重值,进而取第一权重值最大的第一候选颜色作为本次聚类处理后获得的主色,例如为颜色A;其中,与第一候选颜色对应的像素数量为目标图像中属于该第一候选颜色的像素点的数量;
再次,采用k-means++算法,对目标图像的颜色进行一次k=8的聚类,并采用CIE94色差算法,计算聚类结果中包括的每一种第二候选颜色与颜色A的色差,从而计算每一个色差与其所属的第二候选颜色对应的像素数量的乘积,并将该乘积作为该第二候选颜色的第二权重值,进而取第二权重值最大的第二候选颜色作为目标图像的主色,例如为颜色B;其中,与第二候选颜色对应的像素数量为目标图像中属于该第二候选颜色的像素点的数量。
由此可知,本公开的实施例,使用CIE色彩空间作为色差评估标准,并使用CIE94色差算法将色彩尽可能准确归类,尤其是采用了两次不同数量的聚类方法,模拟人眼感知的由粗到细的识别过程,这样得到的颜色最符合人眼感知的实际情况。
其中,如图6所示,针对同一图像601,采用单纯聚类(k=8),取色彩数量最多的颜色作为主色的算法得到的主色为第一颜色602,采用本公开实施例提供的图像主色识别方法得到的主色为第二颜色603。由此可见,本公开实施例提供的图像主色识别方法,确定出的主色与图像的实际颜色更加匹配,即更加符合人眼感知的实际情况。
图7是根据一示例性实施例示出的一种图像主色识别装置的框图,如图7所示,该图像主色识别装置70可以包括:
第一处理模块701,被配置为对待处理图像的颜色进行第一次聚类处理,得到第一次聚类处理结果,其中,所述第一次聚类处理结果包括多种第一候选颜色;
第一权重值获取模块702,被配置为获取每一种所述第一候选颜色的第一权重值,其中,一个所述第一权重值表示一种所述第一候选颜色属于所述待处理图像的主色的权重;
第一主色确定模块703,被配置为将所述第一权重值最大的所述第一候选颜色确定为所述第一次聚类处理获得的主色;
第二处理模块704,被配置为在i取2~N中的每一个整数时,依次执行如下过程:
对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果,其中,所述第i次聚类处理结果中包括多种第i候选颜色;
计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差;
根据所述色差,确定所述第i次聚类处理获得的主色;
第二主色确定模块705,被配置为将第N次聚类处理获得的主色作为所述待处理图像的主色;
其中,N大于或等于2。
可选的,所述装置还包括:
图像转换模块706,被配置为将所述待处理图像转换为CIELab色彩空间下的目标图像;
所述第一处理模块701具体被配置为:
对所述目标图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
所述第二处理模块704在对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果时,具体被配置为:
对所述目标图像的颜色进行所述第i次聚类处理,得到所述第i次聚类处理结果。
可选的,所述第一处理模块701具体被配置为:
采用基于k-means++的聚类算法,在k取3时,对所述待处理图像的颜色进行所述第一次聚类处理,得到所述第一次聚类处理结果;
其中,k表示聚类算法中的聚类数量。
可选的,在i=2时,所述第二处理模块704在对所述待处理图像的颜色进行第i次聚类处理,得到第i次聚类处理结果时,具体被配置为:
采用基于k-means++的聚类算法,在k取8时,对所述待处理图像的颜色进行第二次聚类处理,得到第二次聚类处理结果。
可选的,所述第一次聚类处理结果还包括所述待处理图像中属于每一种所述第一候选颜色的像素点的数量;所述第一权重值获取模块702包括:
方差计算子模块7021,被配置为计算每一种所述第一候选颜色的RGB分量的方差;
第一权重计算子模块7022,被配置为在j取1~M中的每一个整数时,计算所述待处理图像中属于第j种所述第一候选颜色的像素点的数量,与第j种所述第一候选颜色的RGB分量的方差的第一乘积,并将所述第一乘积作为第j种所述第一候选颜色的第一权重值,其中,M为所述第一次聚类处理结果中包括的所述第一候选颜色的数量。
可选的,所述第二处理模块704在计算每一种所述第i候选颜色与第i-1次聚类处理获得的主色的色差时,具体被配置为:
计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的欧氏距离,并将所述欧氏距离作为色差;
或者,
利用CIE94色差算法,计算每一种所述第i候选颜色与所述第i-1次聚类处理获得的主色在CIELab色彩空间下的色差。
可选的,所述第i次处理结果还包括所述待处理图像中属于每一种所述第i候选颜色的像素点的数量;所述第二处理模块704在根据所述色差,确定所述第i次聚类处理获得的主色时,具体被配置为:
在h取1~H中的每一个整数时,计算第h种所述第i候选颜色与所述第i-1次聚类处理获得的主色的色差,与所述待处理图像中属于第h种所述第i候选颜色的像素点的数量的第二乘积,并将所述第二乘积作为第h种所述第i候选颜色的第二权重值,其中,H表示所述第i次聚类处理结果中包括的所述第i候选颜色的数量;
将所述第二权重值最大的所述第i候选颜色,作为所述第i次聚类处理获得的主色。
由上述可知,本公开实施例的图像主色识别装置,对待处理图像的颜色进行至少两次聚类处理,在第一次聚类处理后,获取第一次聚类处理获得的每一种第一候选颜色的第一权重值,然后将第一权重值最大的第一候选颜色确定为第一次聚类处理获得的主色,并针对后续的每一次聚类处理,分别计算本次聚类处理获得的每一种候选颜色与前一次聚类处理获得的主色之间的色差,从而根据色差选出本次聚类处理获得的主色,进而将最后一次聚类处理获得的主色作为待处理图像的主色。
由此可见,本公开实施例的图像主色识别装置,基于前一次聚类处理获得的主色,确定本次聚类处理获得的主色,从而使得聚类处理次数越多时,最终获得的待处理图像的主色的准确度越高,进而越符合人眼从待出图像中所感知到的主色,因此,本公开实施例的图像主色识别装置,能够在一定程度上提升识别图像主色的准确度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开实施例的第四方面,提供了一种电子设备。参照图8,该电子设备包括:
处理器810;
用于存储所述处理器可执行指令的存储器820;
其中,所述处理器被配置为执行所述指令,以实现上述所述的图像主色识别方法。
根据本公开实施例的第五方面,还提供了一种电子设备。如图9所示,该电子设备900可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,电子设备900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(I/O)的接口912,传感器组件914,以及通信组件916。
处理组件902通常控制电子设备900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在设备900的操作。这些数据的示例包括用于在电子设备900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为电子设备900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为电子设备900生成、管理和分配电力相关联的组件。
多媒体组件908包括在所述电子设备900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当电子设备900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为电子设备900提供各个方面的状态评估。例如,传感器组件914可以检测到设备900的打开/关闭状态,组件的相对定位,例如所述组件为电子设备900的显示器和小键盘,传感器组件914还可以检测电子设备900或电子设备900一个组件的位置改变,用户与电子设备900接触的存在或不存在,电子设备900方位或加速/减速和电子设备900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于电子设备900和其他设备之间有线或无线方式的通信。电子设备900可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、8G或5G),或它们的组合。在一个示例性实施例中,通信组件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件916还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述所述的图像主色识别方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由电子设备900的处理器920执行以完成上述方法。可选地,例如,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开实施的又一方面,本公开实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述所述的图像主色识别方法。
根据本公开实施例的又一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述所述的图像主色识别方法。
在此提供的页面切换方案不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的信息提取方案中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
- 图像主色识别方法、装置、电子设备及存储介质
- 图像主色确定方法、装置、存储介质及电子设备