C#确定图像中是否存在对象
C#确定图像中是否存在对象
背景:
我们计划使用传送带系统上的摄像机来计数物体。在这种特定情况下,我们不能使用传感器。所有的物体都相当一致,如果它们出现在图片中,很容易检测到。我一直在研究Aforge和其他一些库,看起来很容易。[这就是我想要做的。](http://kishordgupta.wordpress.com/2010/12/24/detect-object-from-image-based-on-object-color-by-c/)
话虽如此,我确实有一些顾虑。过滤过程中,你必须指定你要搜索的颜色。我的物体是单一颜色的,但我们都知道在我关注的特定点上可能会有100多个不同的rgb值。
有没有办法搜索一系列颜色,或者判断一个颜色是否“像”某个特定颜色?
这是我第一次尝试任何图像处理。我还没有尝试过任何东西,刚刚准备开始,这是我开始之前的一个担忧。
非常感谢任何帮助。
C#判断图像中是否存在对象的原因是想要使用HSL(色相、饱和度、亮度)颜色模型,而不是RGB颜色模型。通过忽略饱和度和亮度,只检查色相参数,可以更好地判断图像中的对象。
为了解决这个问题,可以使用C#编程语言实现以下方法(感谢stackoverflow上的一个讨论):
System.Drawing.Color color = System.Drawing.Color.FromArgb(red, green, blue); float hue = color.GetHue(); float saturation = color.GetSaturation(); float lightness = color.GetBrightness();
这段代码可以将RGB颜色转换成HSL颜色,并获取色相、饱和度和亮度参数。通过使用这种方法,可以更好地判断图像中是否存在特定对象。
以上是关于使用C#判断图像中是否存在对象的方法。这种方法非常有帮助,可以有效地解决这个问题。感谢提供这个方法的人。