网站建设公司宣传范文,什么叫展示型网站,把网站做app,住房和城乡建设岗位评定网站基于ViewFaceCore和DlibDotNet都能实现人脸识别#xff0c;准备做个遮挡图片中人脸的程序#xff0c;由于暂时不清楚DlibDotNet返回的人脸尺寸与像素的转换关系#xff0c;最终决定使用ViewFaceCore实现图片中的人脸遮挡。 新建Winform项目#xff0c;在Nuget包管理器中… 基于ViewFaceCore和DlibDotNet都能实现人脸识别准备做个遮挡图片中人脸的程序由于暂时不清楚DlibDotNet返回的人脸尺寸与像素的转换关系最终决定使用ViewFaceCore实现图片中的人脸遮挡。 新建Winform项目在Nuget包管理器中搜索并安装ViewFaceCore实现人脸遮挡主要分两个步骤 1检测人脸调用ViewFaceCore模块的FaceDetector类识别人脸位置信息 2人脸遮挡调用GDI的相关函数实现人脸遮挡主要包括以下三种挡方式 a纯色填充此种方式主要调用Graphics.FillRectangle函数用指定颜色填充人脸区域关键代码如下
using (SolidBrush sb new SolidBrush(selectColor))
{for (int i 0; i faces.Count; i){e.Graphics.FillRectangle(sb,startX faces[i].Face.Location.X * scale,startY faces[i].Face.Location.Y * scale,faces[i].Face.Location.Width * scale,faces[i].Face.Location.Height * scale);}
}b图片填充此种方式主要调用Graphics.DrawImage函数用指定图片填充人脸区域关键代码如下
for (int i 0; i m_faces.Count; i)
{e.Graphics.DrawImage(picMaskImage.Image,startX faces[i].Face.Location.X * scale,startY faces[i].Face.Location.Y * scale,faces[i].Face.Location.Width * scale,faces[i].Face.Location.Height * scale);
}c马赛克效果填充此种方式是人脸区域实现马赛克效果与前两种方式不同之处在于前两种方式可以不用直接操作图片可以在panel控件中先绘制图片再根据图片起始位置和当前缩放比例计算人脸在控件中的相对位置后再控件中填充颜色或图片而马赛克效果需要操作图片中的像素不便于直接在控件中操作而是在图片中实现马赛克效果后仅在控件中显示最终图片效果。 网上分析和实现马赛克效果的文章很多本文采用参考文献1中的代码并微调其中的马赛克实现函数原文的函数将整个图片处理为马赛克本文使用是改成了将图片指定矩形区域处理为马赛克 最后是程序运行效果原始图形如下 纯色填充效果如下 采用图片填充效果如下 马赛克填充效果如下 测试代码放在GitHub地址为https://github.com/guochao2299/TestFaceMask
参考文献: [1]https://blog.csdn.net/yinsefeixingchuan/article/details/123435426