【发布时间】:2016-10-14 09:44:15
【问题描述】:
给定一个台球的图像,我想知道它是什么球。球的颜色是众所周知的,并且通常不会偏离一些已知的例外情况。但是识别特定球的最佳方法是什么?
我的方法是,给定一张我们知道的图片只包含一个台球(无背景等),我的方法是将每个像素映射到我们期望的台球的已知颜色。理想情况下,这个映射只有白色(所有球都有一些白色)、黑色(更少的黑色,用于书写,除了 8 个球),以及决定其数量的球的颜色。所以对于 2 球,我预计可能有 90% 的红色、7% 的白色和 3% 的黑色,给予或接受。该方法取得了一定的成功。
问题是如何正确地将像素的颜色映射到已知颜色之一。仅色调对大多数人来说效果很好,但对于某些人(粉红色 4 + 红色 3),色调可以相同,但饱和度不同。
我觉得我可以为此制定自己的一套规则,并对其进行一段时间的调整,但我想看看是否有更好的选择。我尝试了 CIE76 的实现,但结果令人失望。我不想扮演我自己的已知算法实现的角色,但如果有一个对程序员友好的良好解释,我可以这样做。
建议、想法或资源?
【问题讨论】:
-
看看一些好的视觉库可能是个好主意。
-
我已经尝试过一点 opencv,但它很难使用,尤其是在 .net 中
-
请参阅here 了解有关颜色距离的一些想法
-
实际上都试过了——在问这里之前我已经做了很多谷歌搜索
-
我会从这个开始:RGB value base color name 并使用最准确地转换示例图像的方法/色彩空间......使用球和桌子的颜色作为基色表。
标签: c# image-processing computer-vision