我是图像处理的新手。我想知道如何使用EmguCV或任何其他技术将效果添加到图像。就像Microsoft LifeCam一样。(例如,在头上显示帽子,显示名称在头等。)
请提前帮助,谢谢。
更新 ::我现在正在处理代码
面部识别x86
我正在使用函数currentFrame.Draw(...)来取消图像。 现在我想用当前图像添加新的位图图像,但它显示了异常。
OpenCV: The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array'
所以我将使用Image myimg.Add()
进行任何操作答案 0 :(得分:2)
一个良好的开端是阅读文档。
我使用过Emgu CV并且有一个面部检测模块,它返回人脸的矩形。 (Haar Cascades)
获得该信息后,可以轻松地将图像放在图像顶部相对于脸部的位置。
该库还支持眼睛检测,因此您可以使用与上述相同的方法在眼镜上绘图。
它非常易于使用且文档非常好所以我会从那里开始。
<强>更新强>
我找到了我使用的代码(Emgu CV),它检测图像中的每个面部并返回带有位置的矩形列表。 (请原谅任何糟糕的代码质量)
您还需要调整参数以满足您的需求。
public List<Rectangle> detect(Bitmap inputImage)
{
inImage = new Image<Bgr, byte>(inputImage);
grayImage = inImage.Convert<Gray, Byte>();
List<Rectangle> faceRects = new List<Rectangle>();
var faces = grayImage.DetectHaarCascade(haar, 1.1, 1, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(inImage.Width, inImage.Height))[0];
grayImage.Dispose();
foreach (var face in faces)
{
faceRects.Add(face.rect);
}
inImage.Dispose();
return faceRects;
}