5

我正在使用 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
{

}
4

2 回答 2

0

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

于 2013-03-14T08:12:57.810 回答
0

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

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

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

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

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

于 2013-03-14T09:11:38.107 回答