知道一个颜色的 RGB 如何归类到特定颜色(如赤橙黄绿青蓝紫黑白灰)?

2014-12-11 17:01:03 +08:00
 ksc010
在google找到的资料是
先转换为HSV(这样容易一下),然后根据颜色范围表做匹配

http://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 #HSL和HSV色彩空间
http://bbs.csdn.net/topics/390181776 #如何根据给定图像的像素(颜色)值,判断此像素是何种颜色?
http://blog.csdn.net/wanggsx918/article/details/23272669 #HSV颜色模型及颜色分量范围
7458 次点击
所在节点    问与答
13 条回复
BGLL
2014-12-11 17:43:06 +08:00
楼主自己不是都给出答案了吗
根据S(饱和度)判断是否是灰、白、黑
根据H(色相)判断是什么颜色:赤橙黄绿青蓝紫
再看L(亮度)判断一下非纯色,比如棕色
staticor
2014-12-11 17:43:32 +08:00
找出每个颜色的 Rgb三元组质心 然后计算 未知RGB 到几个质心的距离 最近者归此类。

难点:
距离规制的选取
质心的计算
BGLL
2014-12-11 17:47:35 +08:00
@staticor 何苦再RGB下自找麻烦呢...
换成HSL不简单多了
ksc010
2014-12-11 17:48:46 +08:00
@BGLL
现在就是不知道有没有公开的范围表之类的
rock_cloud
2014-12-11 17:49:59 +08:00
@BGLL
饱和度不是用来衡量纯度的么?
亮度用来判断灰白黑吧?
BGLL
2014-12-11 18:01:36 +08:00
@ksc010
色相:
221-239 红
0-15 红
26-30 橙色
31-40 黄
41-60 绿(嫩绿)
61-100绿(正绿)
101-110 青
111-120 蓝(海蓝)
121-170 蓝(正蓝)
171-200 紫
201-220 红(洋红)
BGLL
2014-12-11 18:08:00 +08:00
@rock_cloud
呃,是我写的不准确,
不过亮度只能判断白黑,不能判断灰色,亮度跟色彩无关
准确应该是饱和度判断灰度,饱和度越低色彩越淡,为0就是没有色彩,加上亮度判断黑白
BGLL
2014-12-11 18:08:52 +08:00
ksc010
2014-12-11 18:09:23 +08:00
@BGLL 嗯 多谢
rock_cloud
2014-12-11 18:13:02 +08:00
@BGLL 对对对,饱和度为0时看亮度,亮度在中间部分就是灰色了。
staticor
2014-12-11 18:29:08 +08:00
@BGLL 其实我也不懂什么是RGB 不过应该就是三个维度

我稍稍看了下HSL\HSV 的wiki, 大意是将原来的三维色彩空间 (0,255) ^3 进行压缩, 即-

将一个空间分类问题尽可能的压缩到一个二维平面(甚至一维直线上) 进行分类。


所以我再原来基础上做个improvement

@ksc010

找到一个坐标变换函数 例如 Function = rsg - > hsv

进行数据降维, 然后得到新的input数据。

找出每个类别在新坐标系下的质心 然后计算 未知预测RGB 到几个质心的距离 最近者归此类。

难点:

距离规制的选取
质心的计算

hsv, hsl 由于已经成型, 所以变换函数应该不难找到
Daniel65536
2014-12-11 19:21:15 +08:00
太学术了,我给个简单的答案吧:

http://www.guokr.com/article/437666/?page=2

以上是一次大范围调查后得到的结果,总计222,500位用户人次共计命名了超过500万种颜色。
通过这些数据,原作者计算出了各种颜色之间的分界线,并提供了关于每一个rgb值属于红黄蓝绿等基本颜色中的哪一个的表格。
BGLL
2014-12-11 20:09:33 +08:00
@staticor 通过公式直接把RGB转换成HSV后,H的值就已经是色相,也就是颜色了。而且是连续的,划出各颜色的取值范围就行了。还降维干什么,不需要空间分类啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/153186

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX