我有许多颜色的衣服图像,我想检测每一张图像的颜色。假设我有一个在日光条件下的蓝色裙子图像,我可以通过RGB发行版获得正确的颜色。然而,在晚上,很难分辨颜色和蓝色被认为是“黑色”。很难通过RGB发行版制定统一的标准来指定颜色。
因此,我想知道是否有一种方法或算法来检测不同光照下的颜色?
顺便说一句:我也尝试了HSV的颜色空间,结果并不好。
发布于 2015-03-17 02:52:59
这是一个非常困难的问题,至今仍在努力解决。它的主旨是找到一个色彩量化使用一组代表性的基本颜色的图像,是稳健的不同的外部刺激。照明、遮阳、光照差等。
不幸的是,我不能建议任何一种算法来完成所有情况下的工作。然而,过去对我有用的一种算法是在我做图像检索工作的时候。具体来说,柯达研究实验室的罗洁波和大卫·克兰德尔的工作:http://vision.soic.indiana.edu/papers/compoundcolor2004cvpr.pdf
基本算法是查看ISCC-NBS调色板。而且,这个链接更有成效:nbs.asp。这是一套267种颜色,代表了我们今天在现代社会所看到的颜色。通常,当我们描述颜色时,我们有一组或多个形容词,后面跟着主要色调。例如,这件衬衫是深色浅蓝色,或浅黄色等等。这个算法的优点是,当所讨论的颜色受到不同的外部刺激时,我们有所有这些形容词赋予颜色的意义,但在一天结束时,颜色的最后一部分--主导色调--正是我们所追求的。
每种颜色都有一个相关的RGB值。这些颜色被转换成CIE实验室颜色空间,构成一个267 CIE实验室查找表。
要对特定的输入颜色进行分类,您可以将输入的RGB值转换为CIE Lab颜色空间,然后确定与此查找表最接近的颜色。在CIE实验室颜色空间中,两种颜色之间的欧几里德距离最好地代表了人类对颜色的感知差异。一旦我们确定了查找表中颜色最接近的位置,我们就去掉所有的形容词,看什么是主导色调,从而对该颜色进行相应的分类。
例如,如果我们有一个RGB像素,然后我们把它转换成Lab,然后发现最近的颜色是亮黄色,我们将删除“明亮”,而代表该RGB像素的最后一个颜色将是黄色。
因此,最后的算法是:
希望这能有所帮助!
https://stackoverflow.com/questions/29090432
复制相似问题