Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自图像的颜色_C#_Image Processing - Fatal编程技术网

C# 来自图像的颜色

C# 来自图像的颜色,c#,image-processing,C#,Image Processing,我有一些正方形,每个正方形上有4种颜色(红色、绿色、蓝色等)。 我想做一个程序,可以识别颜色(通过网络摄像头),在文本文件或其他东西中记住它们,然后,如果它再次看到相同的方块,就可以识别它。 我试图为每种颜色设置一些RGB限制,当程序处理图片时,将每个方块的RGB与我的限制进行比较 我似乎遇到的问题是,在不同的环境中(或多或少的光照),算法失败了。它要么将橙色视为绿色,要么不识别红色或其他类似问题 有没有更好的方法来比较颜色,或者我应该继续尝试为每种颜色寻找更好的限制 谢谢 作为初始步骤,将RG

我有一些正方形,每个正方形上有4种颜色(红色、绿色、蓝色等)。 我想做一个程序,可以识别颜色(通过网络摄像头),在文本文件或其他东西中记住它们,然后,如果它再次看到相同的方块,就可以识别它。 我试图为每种颜色设置一些RGB限制,当程序处理图片时,将每个方块的RGB与我的限制进行比较

我似乎遇到的问题是,在不同的环境中(或多或少的光照),算法失败了。它要么将橙色视为绿色,要么不识别红色或其他类似问题

有没有更好的方法来比较颜色,或者我应该继续尝试为每种颜色寻找更好的限制


谢谢

作为初始步骤,将RGB转换为HSV(对于图像处理/比较操作来说,这是一个更好的颜色空间-有关详细信息,请参阅,或有关此颜色空间的更多一般信息。)


RGB和HSV之间的转换很简单,通过快速搜索可以找到大量的示例公式和代码。之后,仅使用色调通道进行比较,原因在前面的链接中描述。在不同的照明条件下,您应该会获得更好的效果。

您确定“自动白平衡”处于启用状态吗?图像的颜色与环境中灯光的颜色有关。正如@HenkHolterman所说,要么白平衡有帮助,要么你需要对白色进行采样,然后用它来预处理图像以纠正颜色。非常感谢你提供的信息!从RGB到HSV的转换似乎对我帮助很大@HenkHolterman,以前从未听说过自动白平衡,但我用谷歌搜索了一下,并为我的项目提供了一些新的想法!