我正在考虑编写一个小库来从预定的候选列表中猜测(RGB 值)颜色的名称。
我的第一次尝试纯粹基于 3 维 RGB 颜色空间内的毕达哥拉斯距离——这并没有取得巨大成功,因为大多数命名的颜色点都位于空间的边缘(例如蓝色在 0、0、255),所以,对于空间中间的大多数颜色,它最接近的命名颜色也是相当随意的。
所以,我正在考虑更好的方法,并提出了一些候选人
HSV 颜色空间内的圆柱距离 - 这可能与上述问题类似,但是,HSV 在人类意义上似乎比 RGB 更有意义,这可能是有用的。
上述任何一种,但每个命名的颜色点都使用任意值加权,该值表示其对周围空间中点的吸引力强度。这种模型有名字吗?我意识到这有点模糊,但对我来说这似乎是一个相当直观的想法。
一个贝叶斯网络,它检查 HSV 颜色的属性并返回最可能的颜色名称(我想象的节点类似于,例如 P(Black | Saturation < 10), P(Red | Hue = 0),但是,这似乎不太理想 - 例如,给定颜色为红色的概率与其色调与 0 的接近程度成正比,而不是离散值。有没有一种方法可以调整贝叶斯网络来处理在正在测试的变量?
最后,我想知道在 HSV 或 RGB 颜色空间中是否有某种基于支持向量机的分类,但对这些分类并不十分熟悉,我不确定这是否会比基于勾股距离的方法提供任何特别的优势我最初尝试过,特别是因为我只处理三维空间。
因此,我想知道,你们中是否有人遇到过类似的问题,或者知道任何可以帮助我决定方法的资源?如果有人能指出我正确的方向(无论是上述之一,还是完全不同的东西),我将非常感激。
干杯!
蒂姆