一种图片主色调提取方法及装置
技术领域
本发明涉及数据处理领域,尤其涉及在图片数据中提取图片主色调的方法和装置。
背景技术
图片数据处理包括图片搜索、图片分类存储、图片分类展示等。在进行诸如此类的图片数据处理时,现有技术中提供了一种利用图片的主色调来快速进行图片搜索、分类的处理过程。例如,用户在进行图片搜索时,可以输入图片的搜索关键词和图片的主色调,搜索引擎就会从符合搜索关键词的图片中再筛选出具有相应主色调的图片提供给用户。可见,通过引入主色调进行搜索可以提高搜索的精度,方便用户搜索同一色系的图片。再如,图片管理中,可以按照图片主色调进行存储和展示等,提高图片管理的灵活性和实用性。
在上述的图片处理应用中,需要对存储的图片进行主色调提取,即识别出给定图片的所有颜色中最主要的颜色或占有比重最大的颜色作为图片的主色调。
在现有技术中,将颜色空间划分为若干区域,每个区域代表某一特定颜色,统计待处理图片的像素点落在各个区域的个数,个数最多的区域代表的颜色即为图像的主色调。但是,这种方法没有考虑到人眼对颜色的敏感度,对于有些类型的颜色空间,采用单一的颜色特征不能准确的确定图片的主色调。
发明内容
本发明实施例所要解决的技术问题在于,提供一种图片主色调提取方法及装置,可以使得提取的主色调更符合人眼的观察情况。
为了解决上述技术问题,本发明实施例提供了一种图片主色调提取方法,包括:
根据主颜色特征值将颜色空间划分为不同的颜色区域,其中,所述颜色区域分别具有敏感度权重;
获取图片中各像素点的主颜色特征值;
根据所述各像素点的主颜色特征值确定所述像素点所在的颜色区域;
根据所述颜色区域中落入的像素点的数目和所述颜色区域的敏感度权重确定所述图片的主色调。
其中,所述图片中的各像素点还可具有像素权重值,所述根据所述颜色区域中落入的像素点的数目和所述颜色区域的敏感度权重确定所述图片的主色调包括:
根据所述颜色区域中落入的像素点的数目、所述颜色区域的敏感度权重、各像素点的像素权重值确定所述图片的主色调。
其中,所述颜色区域还可包括根据次颜色特征值划分的颜色子区域,则该方法还包括:
获取所述图片中各像素点的次颜色特征值;根据所述像素点的次颜色特征值确定所述像素点在所述颜色区域中所处的颜色子区域;
相应的,步骤:根据所述颜色区域中落入的像素点的数目和所述颜色区域的敏感度权重确定所述图片的主色调包括:
根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域所处的各颜色区域的敏感度权重确定所述图片的主色调。
进一步的,该颜色子区域可分别具有颜色区域权重,所述根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域所处的各颜色区域的敏感度权重确定所述图片的主色调包括:
根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域的颜色区域权重统计各颜色区域中的有效像素数目;
根据所述各颜色区域中的有效像素数目和所述各颜色区域的敏感度权重确定所述图片的主色调。
具体的,所述颜色空间为HSV颜色空间或HSI颜色空间。则相应的,主颜色特征为色度,次颜色特征为饱和度和亮度。
其中,颜色子区域包括分别代表其所属的颜色区域的灰度和色度的多个子区域,所述颜色区域权重代表各颜色子区域对其所属的颜色区域和其他颜色区域的贡献。
另一方面,本发明实施例还提供了一种图片主色调提取装置,包括:
区域划分模块,用于根据主颜色特征值将颜色空间划分为不同的颜色区域,其中,所述颜色区域分别具有敏感度权重;
主值获取模块,用于获取图片中各像素点的主颜色特征值;
区域确定模块,用于根据所述各像素点的主颜色特征值确定所述像素点所在的颜色区域;
色调确定模块,用于根据所述颜色区域中落入的像素点的数目和所述颜色区域的敏感度权重确定所述图片的主色调。
若图片中的各像素点还具有像素权重值,则色调确定模块46还用于根据所述颜色区域中落入的像素点的数目、所述颜色区域的敏感度权重、各像素点的像素权重值确定所述图片的主色调。
其中,所述区域划分模块还用于将颜色区域根据次颜色特征值划分为颜色子区域,所述装置还包括:
次值获取模块,用于获取所述图片中各像素点的次颜色特征值;
子区域确定模块,用于根据所述像素点的次颜色特征值确定所述像素点在所述颜色区域中所处的颜色子区域;
所述色调确定模块还用于根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域所处的各颜色区域的敏感度权重确定所述图片的主色调。
进一步的,所述颜色子区域分别具有颜色区域权重,所述色调确定模块包括:
数目确定子模块,用于根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域的颜色区域权重统计各颜色区域中的有效像素数目;
色调确定子模块,用于根据所述各颜色区域中的有效像素数目和所述各颜色区域的敏感度权重确定所述图片的主色调。
同时,所述颜色空间可为HSV颜色空间或HSI颜色空间。则相应的,该区域划分模块根据色度划分颜色区域,根据饱和度或/和亮度划分颜色子区域。
并且,所述区域划分模块可根据饱和度和亮度将颜色区域划分为分别代表其灰度和色度的多个颜色子区域,所述颜色区域权重代表各颜色子区域对其所属的颜色区域和其他颜色区域的贡献。
在进行颜色空间划分时还为划分的各颜色区域定义了不同的敏感度权重,该敏感度权重代表了人眼对各颜色区域的敏感度,在进行主色调提取时,除了统计各颜色区域的像素数目外还要参考各颜色区域的敏感度,这样,使得最后提取的主色调更符合人眼的视觉感觉,更具有真实性。同时,在划分颜色空间时,除了划分颜色区域,还对颜色区域进行进一步划分出颜色子区域,考虑了颜色空间的层次性,使得在统计像素数目值时,结果更准确。为了获得更精确的统计结果,还可以进一步给出颜色子区域的权重,提高主色调提取的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的图片主色调提取方法的一个具体流程示意图;
图2是本发明实施例中的图片主色调提取方法的另一个具体流程示意图;
图3是本发明实施例中的颜色子区域的一个具体组成示意图;
图4是本发明实施例中的图片主色调提取装置的一个具体组成示意图;
图5是本发明实施例中的图片主色调提取装置的另一个具体组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术进行主色调提取时没有考虑人眼对不同的颜色敏感度的不同,使得对图片的主色调提取不够符合用户的使用预期,特别是在用户搜索等场合,甚至会给用户一种搜索结果错误的感觉。为此,在本发明实施例中,在对主色调进行提取时,考虑了不同颜色的敏感度,以使提取结果更符合使用者的预期。
如图1所示,为本发明实施例中的图片主色调提取方法的一个具体流程示意图,该方法包括:
101、根据主颜色特征值将颜色空间划分为不同的颜色区域(Color Domain,CD),其中,所述颜色区域分别具有敏感度权重。
如可在HSV(Hue,Saturation,Value)颜色空间,或HSI(Hue,Saturation,Intensity,色度、饱和度和亮度)颜色空间、或YUV(Y表示亮度信号,U和V表示两个色度信号)颜色空间中进行区域划分。HSV颜色空间是一个倒立的椎体,HSV中的H(Hue)代表色度、S(Saturation)代表饱和度、V(Value)代表亮度,H的取值范围为(0-360],S的取值范围为[0,1],V的取值范围为[0,1],当S=1,V=1是代表颜色的纯度,当S=0,V=0代表纯黑色,当S=0,V=1代表纯白色,其余的不同H,S,V组合代表不同的色彩。
如,在HSV颜色空间可根据主颜色特征(H)的值划分为8个颜色区域,根据次要颜色特征(s和v)划分为不同的颜色子区域。
按照色度和人眼对不同颜色的敏感度,将HSV颜色空间划分为若干CD(如8~10个颜色空间),以划分为8个颜色空间为例,可划分为:红色(Red)、橙色(Orange)、黄色(Yellow)、绿色(Green)、青色(Cyan)、蓝色(Blue)、紫色(Purple)、品红(Pink)。其中,颜色中的黑色(Black)、灰色(gray)和白色(White)分别对应黑色区域、白色区域和灰色区域,这三个区域不是独立的颜色区域,它们分布在8个颜色区域中,隶属于其他彩色空间,分别由8个颜色空间中的黑色子区域、白色子区域和灰色子区域组成。比如说红色浅到一定程度就变成白色了。
在确定CD的边界时可根据色度确定颜色的边界,同时为每个CD赋予一个[0,1]的敏感度权重值,代表人眼对其的敏感程度。
102、获取图片中各像素点的主颜色特征值。如按上例中对颜色空间的划分方式,则获取各像素点的H值。
103、根据所述各像素点的主颜色特征值确定所述像素点所在的颜色区域。
如按上例中对颜色空间的划分方式,则可根据像素点的H值将像素点投影到对应的颜色区域。
104、根据所述颜色区域中落入的像素点的数目和所述颜色区域的敏感度权重确定所述图片的主色调。
如按上步中对像素点进行投影后,则统计各CD中投影的像素点的总数目,再乘以对应的敏感度权重值,对经过权重后的数目进行排序,则排序中数目最大的CD所代表的色调即为该图片的主色调。
为考虑颜色空间的层次性,使得在统计像素数目值时,结果更准确,在划分颜色空间时除了划分颜色区域,还可对颜色区域进行进一步划分出颜色子区域(Color SubDomain,CSD)。如图2所示,则所述方法包括步骤:
201、根据主颜色特征值将颜色空间划分为不同的颜色区域,并将各颜色区域进一步划分为颜色子区域。在一些实施例中,在划分颜色子区域时,所划分的颜色子区域可包括分别代表其所属的颜色区域的灰度和色度的多个子区域,所述颜色区域权重代表各颜色子区域对其所属的颜色区域和其他颜色区域的贡献。
仍以HSV颜色空间为例,按前述方法划分了CD,再根据饱和度和亮度将每个CD划分为不同的CSD,如划分为如下的CSD:黑色(Black)、深灰色(Dark Gray)、深彩色(DarkColor),灰色(Gray),灰彩色(Dark Gray),浅白色(Light White),浅彩色(Light Color),白色(White),彩色(Color),中等彩色(Middle Color),纯彩色(Pure Color),其中黑色CSD、灰黑色CSD、灰色CSD、灰白色CSD、白色CSD仅在计算黑色、灰色和白色CD的时候考虑。每个CD的CSD的边界,可以根据本颜色的特征做相应的调整,每个CD的划分为的CSD的结构如图3所示。图3中的V代表亮度,亮度的取值从0到1,S代表饱和度,取值从0到1。
在划分CSD时,还可为每个CSD赋予一个权重值,以表征该CSD对于某颜色的贡献。如,本例中可为每个CSD同时赋予一个数值(该数值范围可为[0,1]),表示该CSD点对于某颜色的贡献,黑色CSD、灰黑色CSD、灰色CSD、灰白色CSD、白色CSD对黑色、灰色和白色有贡献,其余CSD对其所属CD的颜色有贡献。
202、获取所述图片中各像素点的主、次颜色特征值。如以HSV颜色空间为例,则获取H、S、V作为主次颜色特征值。
203、根据所述各像素点的主颜色特征值确定所述像素点所在的颜色区域,根据所述像素点的次颜色特征值确定所述像素点在所述颜色区域中所处的颜色子区域。如以HSV颜色空间为例,可根据像素的色度将其映射到不同的CD,然后根据饱和度和亮度将其映射到不同的CSD。
204、根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域所处的各颜色区域的敏感度权重确定所述图片的主色调。
若其中的颜色子区域还包括对应的颜色区域权重,则本步骤包括:
A、根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域的颜色区域权重统计各颜色区域中的有效像素数目;
B、根据所述各颜色区域中的有效像素数目和所述各颜色区域的敏感度权重确定所述图片的主色调。
仍以前述的HSV颜色空间为例则步骤204具体可以是:
通过累计彩色CD中所包含的各个CSD像素所贡献的有效像素个数,并乘上相应的权重计算彩色像素个数;
通过统计各个CD中黑色CSD、灰黑色CSD、灰色CSD、灰白色CSD、白色CSD的有效像素个数,并乘上相应的权重计算黑色、灰色、白色的有效像素点的个数;
对根据上述步骤计算出的每种CD中包括的有效像素点的个数排序,有效像素点个数最多的CD所表示的颜色作为图片主色调。当然,也可以定义一个比例阈值,在统计每个CD中的像素个数时,将其以整幅图片中的像素总个数为比例,统计各CD中的像素点所占整幅图片中所有像素点的比例值,将该比例值与比例阈值进行比较,若超过该比例阈值则超过的比例值中最大值所代表的色调即为本附图片的主色调,若没有超过该比例阈值的比例值,则判定该图片无主色调。
为了进一步符合人的观察结果,可以为每个像素定义像素权重值(根据对其他权重值的范围定义,可对该像素权重值范围定义一个合理数值范围,如为[0,1]数值范围),其确定的标准可以是该像素在整个图片的位置,即对观察结果影响较大的区域内的像素点的像素权重值可以较大一些,而对观察结果影响较小的区域内的像素点的像素权重值可以设小一些,在统计有效像素点时,对像素点进行权重后,在统计出有效像素个数,再进行排序。
比如,一个像素点是处于图片的背景区域的像素点,则可赋其像素权重值为c,若其刚好落入黄色颜色区域中的纯彩子区域,假定黄色颜色区域的敏感度权重为a,纯彩子区域的颜色区域权重为b,则在统计黄色颜色区域的像素点个数时,该像素点的个数统计为1*c*b*a(当然,若仅划分了颜色区域,没有划分颜色子区域,则该像素点的个数可统计为1*c*a)。按照此法对每一个像素进行统计,最后得出各颜色区域中包括的有效像素点的个数最多的颜色区域为图片的主色调。
其中,在上述各实施例中的颜色空间也可以是除HSV外的其他颜色空间,如HIS或YUV颜色空间,在不同的颜色空间中均可按上述的规则对其进行划分和赋予权重值。如在YUV颜色空间中颜色区域可按U和V代表的色度值划分,颜色子空间可按Y代表的亮度值划分。同时,在划分区域时也可以是,按亮度或/和饱和度值来划分颜色空间,再按色度值来划分颜色子空间,对比本发明实施例中并不对其进行限制。
在进行颜色空间划分时还为划分的各颜色区域定义了不同的敏感度权重,该敏感度权重代表了人眼对各颜色区域的敏感度,在进行主色调提取时,除了统计各颜色区域的像素数目外还要参考各颜色区域的敏感度,这样,使得最后提取的主色调更符合人眼的视觉感觉,更具有真实性。同时,在划分颜色空间时,除了划分颜色区域,还对颜色区域进行进一步划分出颜色子区域,考虑了颜色空间的层次性,使得在统计像素数目值时,结果更准确。为了获得更精确的统计结果,还可以进一步给出颜色子区域的权重,提高主色调提取的准确性。
相应的,本发明实施例还提供了一种图片主色调提取装置,如图4所示,该装置包括:
区域划分模块40,用于根据主颜色特征值将颜色空间划分为不同的颜色区域,其中,所述颜色区域分别具有敏感度权重;
主值获取模块42,用于获取图片中各像素点的主颜色特征值;
区域确定模块44,用于根据所述各像素点的主颜色特征值确定所述像素点所在的颜色区域;
色调确定模块46,用于根据所述颜色区域中落入的像素点的数目和所述颜色区域的敏感度权重确定所述图片的主色调。其中,若图片中的各像素点还具有像素权重值,则色调确定模块46还用于根据所述颜色区域中落入的像素点的数目、所述颜色区域的敏感度权重、各像素点的像素权重值确定所述图片的主色调。
为提高准确度,所述区域划分模块还用于将颜色区域根据次颜色特征值划分为颜色子区域,则如图5所示,该装置还包括:
次值获取模块43,用于获取所述图片中各像素点的次颜色特征值;
子区域确定模块45,用于根据所述像素点的次颜色特征值确定所述像素点在所述颜色区域中所处的颜色子区域;
所述色调确定模块46还用于根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域所处的各颜色区域的敏感度权重确定所述图片的主色调。
进一步的,上述颜色子区域可分别具有不同的颜色区域权重,则色调确定模块46包括:数目确定子模块,用于根据所述各颜色区域中的各颜色子区域中落入的像素点的数目和所述各颜色子区域的颜色区域权重统计各颜色区域中的有效像素数目;色调确定子模块,用于根据所述各颜色区域中的有效像素数目和所述各颜色区域的敏感度权重确定所述图片的主色调。
其中,上述各实施例中的颜色空间可为HSV颜色空间或HSI颜色空间。相应的,区域划分模块40可根据色度划分颜色区域,根据饱和度和亮度划分颜色子区域。并且,区域划分模块40可根据饱和度和亮度将颜色区域划分为分别代表其灰度和色度的多个颜色子区域,所述颜色区域权重代表各颜色子区域对其所属的颜色区域和其他颜色区域的贡献。
其中,上述各模块的具体实现策略可参考前述的方法实施例,此处不再一一列举。
综上所述可知,在本发明实施例中,在进行颜色空间划分时还为划分的各颜色区域定义了不同的敏感度权重,该敏感度权重代表了人眼对各颜色区域的敏感度,在进行主色调提取时,除了统计各颜色区域的像素数目外还要参考各颜色区域的敏感度,这样,使得最后提取的主色调更符合人眼的视觉感觉,更具有真实性。同时,在划分颜色空间时,除了划分颜色区域,还对颜色区域进行进一步划分出颜色子区域,考虑了颜色空间的层次性,使得在统计像素数目值时,结果更准确。为了获得更精确的统计结果,还可以进一步给出颜色子区域的权重,提高主色调提取的准确性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。