图片色调识别
- 色调定义
- 色调提取方法
- 中位切分法
- RGB与色调
色调定义
(1) 暖色调温暖与热烈是暖色的基调。当人们见到红、橙、黄、红紫等暖色调后,比较容易联想到太阳、火焰、热血等事物,会有温暖、欢乐、刺激等感觉。按照给人温暖感觉的强度有高到低排序: 橙色>红色>粉色>黄色>红紫色>黄绿色例如暖色调的颜色占比达到40%以上,那么定义该图片的颜色为暖色调。
(2) 中性色调没有冷暖性质的区别。比如灰、黑、棕属于中性色彩,例如中性色调的颜色占比达到40%以上,那么定义该图片的颜色为中性色调。
(3) 冷色调冷色则以寒冷、清爽为基调。当人们见到蓝、紫、绿等冷色之后,比较想象到太空、冰雪、海洋等事物,使人有寒冷、清凉、肃穆的感觉。按照给人寒冷感觉的程度由高到底进行排序: 蓝色>蓝紫>蓝绿>紫>绿。例如冷色调的颜色占比达到40%以上,那么定义该图片的颜色为冷色调。
(4) 色调繁杂(这个未实现)若提取的主题色占比均衡(7个主题色的占比均为10%~20%之间),并没有出现占比特别大的颜色,则可该图像色调繁杂。
色调提取方法
中位切分法
中位切分法通常是在图像处理中降低图像位元深度的算法,可用来将高位的图转换位低位的图,如将24bit的图转换为8bit的图。我们也可以用来提取图片的主题色,其原理是是将图像每个像素颜色看作是以R、G、B为坐标轴的一个三维空间中的点,由于三个颜色的取值范围为0~255,所以图像中的颜色都分布在这个颜色立方体内,如下图所示。
各个端点的RGB值为:
颜色 | 黑色 | 白色 | 红色 | 绿色 |
---|---|---|---|---|
RGB | [0,0,0] | [255,255,255] | [255,0,0] | [0,255,0] |
颜色 | 蓝色 | 黄色 | 品红色 | 青色 |
RGB | [0,0,255] | [255,255,0] | [255,0,255] | [0,255,255] |
之后将RGB中最长的一边从颜色统计的中位数一切为二,使得到的两个长方体所包含的像素数量相同,重复这个过程直到切出长方体数量等于主题色数量为止,最后取每个长方体的中点即可。
在实际使用中如果只是按照中点进行切割,会出现有些长方体的体积很大但是像素数量很少的情况。解决的办法是在切割前对长方体进行优先级排序,排序的系数为体积 * 像素数。这样就可以基本解决此类问题了。
RGB与色调
-
主题色提取
通过中位切分法对图片的主题色进行提取,目前设置提取颜色数量为7个,即划分7个颜色空间,选择颜色空间的中位数作为颜色空间的主题色。 -
图片色调判断
对7个颜色空间的像素数进行计算,根据暖、中、冷色调的颜色比重作为分类的依据。例如暖色调的颜色占比达到50%以上,那么定义该图片的颜色为暖色调。初步粗略的通过颜色空间来划分色域。
参考博客:图像主题色提取
引用文献:
[1] 李征.论色彩的心理效应[J].石家庄职业技术学院学报,2004(03):45-48.
[2] 李振福.(2007).船员心理与船舶舱室色彩设计研究.船舶工程,29(3):34-39.