嗨,我正在使用人脸检测的代码。但我不会继续做人脸识别。但是我在这里得到了堆栈,下一步是怎么做的。然而,我使用的是emgu版本2.2
if (faces.Length > 0)
{
foreach (var face in faces)
{
ImageFrame.Draw(face.rect, new Bgr(Color.Green), 2);
//Extract face
ExtractedFace = new Bitmap(face.rect.Width, face.rect.Height);
FaceConvas = Graphics.FromImage(ExtractedFace);
FaceConvas.DrawImage(GrayBmpInput, 0, 0, face.rect, GraphicsUnit.Pixel);
ExtcFacesArr[faceNo] = ExtractedFace;
faceNo++;
}
faceNo = 0;
picExtcFaces.Image = ExtcFacesArr[faceNo];
CamImageBox.Image = ImageFrame;
}
}我应该在哪里继续人脸识别,并在C#代码中有任何好的在线参考?
发布于 2013-01-15 16:02:26
你的代码几乎是正确的,但我认为你不知道下一步该做什么。我正在我的一个应用程序中进行人脸识别,以便在脸上显示一个面具。我是这样做的。
Image mask = Image.FromFile("mask.png");
public Bitmap getFacedBitmap(Bitmap bbb)
{
using (Image<Bgr, byte> nextFrame = new Image<Bgr, byte>(bbb))
{
if (nextFrame != null)
{
// there's only one channel (greyscale), hence the zero index
//var faces = nextFrame.DetectHaarCascade(haar)[0];
Image<Gray, byte> grayframe = nextFrame.Convert<Gray, byte>();
//Image<Gray, Byte> gray = nextFrame.Convert<Gray, Byte>();
var faces = grayframe.DetectHaarCascade(haar, 1.3, 2, HAAR_DETECTION_TYPE.SCALE_IMAGE, new Size(nextFrame.Width / 8, nextFrame.Height / 8))[0];
if (faces.Length > 0)
{
foreach (var face in faces)
{
//ImageFrame.Draw(face.rect, new Bgr(Color.Green), 2);
//
using(Graphics g = Graphics.FromImage(bbb))
{
g.DrawImage(mask,face.rect);
g.Save()
}
}
}
}
}
retun bbb;
}https://stackoverflow.com/questions/14230027
复制相似问题