【问题标题】:Color detection by using C#使用 C# 进行颜色检测
【发布时间】:2013-03-14 07:57:03
【问题描述】:

我正在使用 EmguCV 库开发一个 winForm c# 程序,用于通过网络摄像头检测微笑。我使用一些 haarcascade_smile xml 文件来成功完成它。 但是,在某些情况下会出现检测错误:有时嘴形线被错误地识别为嘴巴。

我有一个新想法,就是在原来的xml文件之外寻找红色的颜色来改进嘴巴检测,并尝试降低错误率。

有人知道可以用来检测红色的命令或库吗?

非常感谢:)

var smiles = grayframe.DetectHaarCascade(_smiles, 
                                         ScaleIncreaseRate, 
                                         MinNeighbors, 
                                         HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, 
                                         new Size(WindowsSize, WindowsSize))[0];
if (smiles.Length == 0)
{
    // Number of smile face detected is 0
}
else
{

}

【问题讨论】:

  • 感谢您的回答。但我想检测红色而不是分析检测到的图像像素。

标签: c# winforms emgucv


【解决方案1】:

使用Bitmap.GetPixel() 可以获得像素的颜色。然后您必须确定该颜色是否被视为红色。这是一个不难解决的挑战,但可能需要一些研究。

例如,查看 HTML 颜色表及其代码,您已经可以确定大多数 红色 的以下特征:

  • RGB值的R元素高于GB
  • G 元素大部分时间低于 B,有时相等,但从不高于。
  • 对于较高的R值,B值越高,越紫色;什么可以接受,什么不可以?

等等等等。您可以创建一个定义这些规则的类,并检查颜色是否为您的特定用途而视为红色。

由于您的目标是缩小红色范围,因此您可以更加专业化课程并获得更准确的答案。

【讨论】:

    【解决方案2】:

    Bitmap.Getpixel() 会为您提供指定像素的颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2021-11-24
      • 2011-01-17
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多