使用EmguCV进行手部检测

时间:2015-08-13 07:12:19

标签: c# image-processing emgucv haar-classifier

我是emguCV的新手。我需要访问网络摄像头并检测手。然后我需要识别手的标志并根据手势添加一些控件。首先,我需要从网络摄像头流中检测手。我不知道如何开始这个过程。我从研究论文中得到了一些想法。我知道我需要训练图像,但找不到任何正确的过程。这个主题下有没有教程?有些教程不是用户友好且完整的。

1 个答案:

答案 0 :(得分:1)

对于emguCV中的任何类型的检测,您首先需要一个名为haarcascade的xml文件,该文件用于实际检测面部/上半身/手等。有关详细信息,请进行谷歌搜索。您可以在此处获取此类手动检测文件: http://www.andol.info/hci/1830.htm

以下是检测代码的示例:

Bitmap Source; //your Bitmap
Image<Bgr, byte> ImageFrame = new Image<Bgr, byte>(Source); //image that stores your bitmap

Image<Gray, byte> grayFrame = ImageFrame.Convert<Gray, byte>(); //grayscale of your image

HaarCascade haar = new HaarCascade("yourhaarcascadefile.xml"); //the object used for detection

var faces = grayFrame.DetectHaarCascade(haar, 1.1, 3, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new System.Drawing.Size(25, 25))[0]; //variable that stores detection information

foreach (var face in faces) 
    ImageFrame.Draw(face.rect, new Bgr(System.Drawing.Color.Green), 3); //draws a rectangle on top of your detection

return ImageFrame.toBitmap(); //returns your bitmap with detection applied;