用c#进行颜色检测
本文关键字:颜色 检测 | 更新日期: 2023-09-27 18:03:54
我正在开发一个winForm c#程序,用于使用EmguCV库与网络摄像头进行微笑检测。我使用一些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
{
}
使用Bitmap.GetPixel()
您可以获得像素的颜色。然后,您必须确定该颜色是否被视为红色。这是一个不难解决的挑战,但可能需要一些研究。
- RGB值的R元素高于G和B。 G元素在大多数情况下低于B,有时相等,但从不高于。
- 当R值较高时,B值越高,紫色越明显;什么是可接受的,什么是不可接受的?
等等,等等。你可以创建一个类来定义这些规则,并检查一种颜色是否被认为是红色。
既然你的目标是缩小红色的范围,你可以更专门化类,得到更精确的答案
Bitmap.Getpixel()将获取指定像素的颜色