c# 人脸框截图处理

算法定位到人脸框,我们需要把人脸框截取出来。因为算法可能指定为到人脸,我们需要把整个人头截取出来,故不能简单的按照矩形框截图,需要做下简单处理。同时也要考虑到,扩大后的截图尺寸可能大于原图尺寸,需要判断一下。

代码如下

 private void clipImage(ref Bitmap image, System.Drawing.Rectangle rect)
        {

            if (rect.Width != 0 && rect.Height != 0)
            {
                int offsetX = rect.X - rect.Width / 2;
                offsetX = offsetX > 0 ? offsetX : 0;
                int offsetY = rect.Y - (int)(rect.Height / 1.5);
                offsetY = offsetY > 0 ? offsetY : 0;
                int width = rect.Width * 2;
                width = Math.Min(width, image.Width - offsetX);
                int height = (int)(126.0 / 102.0 * width);
                height = Math.Min(height, image.Height - offsetY);
                Bitmap newImage = new Bitmap(width, height);
                Graphics g = Graphics.FromImage(newImage);
                g.DrawImage(image, System.Drawing.Rectangle.FromLTRB(0, 0, width, height), System.Drawing.Rectangle.FromLTRB(offsetX, offsetY, offsetX + width, offsetY + height), GraphicsUnit.Pixel);
                image.Dispose();
                image = newImage;
            }
        }
人脸可能占整个图像尺寸比例过大,或者太靠近屏幕边缘,需要额外处理。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值