我有一些正方形,每个上面有 4 种颜色(红色、绿色、蓝色等)。我想制作一个可以识别颜色的程序(通过网络摄像头),将它们存储在文本文件或其他东西中,然后,如果它再次看到相同的方块来识别它。我尝试为每种颜色设置一些 RGB 限制,并在程序处理图片时将每个正方形的 RGB 与我的限制进行比较。
我似乎遇到的问题是,在不同的环境(或多或少的光线)中,算法失败了。它要么将橙色视为绿色,要么无法识别红色或其他类似问题。
有没有更好的方法来比较颜色,还是我应该继续尝试为每种颜色找到更好的限制?
谢谢!
我有一些正方形,每个上面有 4 种颜色(红色、绿色、蓝色等)。我想制作一个可以识别颜色的程序(通过网络摄像头),将它们存储在文本文件或其他东西中,然后,如果它再次看到相同的方块来识别它。我尝试为每种颜色设置一些 RGB 限制,并在程序处理图片时将每个正方形的 RGB 与我的限制进行比较。
我似乎遇到的问题是,在不同的环境(或多或少的光线)中,算法失败了。它要么将橙色视为绿色,要么无法识别红色或其他类似问题。
有没有更好的方法来比较颜色,还是我应该继续尝试为每种颜色找到更好的限制?
谢谢!
作为初始步骤,从 RGB 转换为 HSV(它是用于图像处理/比较操作的更好的颜色空间 - 有关详细信息,请参阅此内容,或有关此颜色空间的更多一般信息,请参阅Wikipedia 条目。)
RGB 和 HSV 之间的转换很简单,并且有大量的示例公式和代码,您可以通过快速搜索找到。之后,仅使用 Hue 通道进行比较,原因在前面的链接中描述。您应该在不同的照明条件下获得更好的结果。