Mic*_*ine 6 algorithm opencv image image-processing computer-vision
我有很多颜色的衣服图像,我想检测每个图像的颜色.假设我在日光条件下有蓝色裙子图像,我可以通过RGB分布获得正确的颜色.然而,在晚上很难分辨颜色,"蓝色"被认为是"黑色".通过RGB分布来制定统一标准非常难以指定颜色.
因此,我想知道是否有一种方法或算法来检测不同照明下的颜色?
顺便说一句:我也尝试过HSV色彩空间,结果并不好.
这是一个非常棘手的问题,今天仍在努力解决.其要点是使用图像的一组代表性基本颜色来找到颜色量化,该基本颜色对不同的外部刺激具有鲁棒性......照明,阴影,不良照明等.
不幸的是,我无法建议任何一种算法可以为所有情况下的工作.但是,过去对我有用的一种算法就是我在图像检索方面的工作.具体来说,来自柯达研究实验室的Jiebo Luo和David Crandall的作品:http://vision.soic.indiana.edu/papers/compoundcolor2004cvpr.pdf
基本算法是查看ISCC-NBS调色板集.此外,这个链接更有成效:http://tx4.us/nbs-iscc.htm.它是一组267种颜色,代表了我们今天在现代社会中看到的颜色.通常当我们描述颜色时,我们有一组一个或多个形容词,然后是主色调.例如,那件衬衫是浅蓝色或浅黄色等.这个算法的美妙之处在于,当所讨论的颜色受到不同的外部刺激时,我们拥有所有这些形容词赋予颜色意义,但在一天结束时,颜色的最后一部分 - 主导色调 - 就是我们所追求的.
这些颜色中的每一种都具有相关的RGB值.这些颜色转换为CIE Lab颜色空间,形成267 CIE Lab查找表.
要对特定输入颜色进行分类,您可以将此输入的RGB值转换为CIE Lab颜色空间,然后确定与此查找表最接近的颜色.已经表明,CIE Lab颜色空间中两种颜色之间的欧几里德距离最能代表人类对颜色的感知差异.一旦我们确定查找表中哪个位置颜色最接近,我们就会去除所有形容词,看看主色调是什么,然后我们相应地对该颜色进行分类.
例如,如果我们有一个RGB像素并且我们将其转换为Lab,那么发现最接近的颜色是亮黄色,我们将删除"明亮"并且代表该RGB像素的最终颜色将是黄色.
因此,最终算法是这样的:
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |