qt实现证件照片自动生成

qt实现证件照片自动生成。

接上篇,用vs2015生成人像精细分割服务程序后。用qt与opencv+人脸识别来生成证件照

界面如下。

在这里插入图片描述

界面很简洁,主要功能有批量生成;背景颜色;选择图片,生成证件照。
如上图所示,选择一张图片后,如果图中有人物会自动分割生成指定背景图片。默认为白色背景。这时细心的人会问,paddleseg生成的只是Mask图,这个前景是怎么提取到的。最简单的方法就是逐个像素提取,只要是白色像素的就提取原图像素,黑的就改成背景色就可以了。代码如下:
for (int i = 0; i < mask.rows; i++)
for (int j = 0; j <mask.cols;j++)
//if(mask.at(i, j)==0)
if(mask.at(i, j)<125)
{//白色
// image.atcv::Vec3b(i, j)[0] = 255;
// image.atcv::Vec3b(i, j)[1] = 255;
// image.atcv::Vec3b(i, j)[2] = 255;
//红色
image.atcv::Vec3b(i, j)[0] = 0;
image.atcv::Vec3b(i, j)[1] = 0;
image.atcv::Vec3b(i, j)[2] = 255;
}
一般来说生成白色背景的图,后面好处理。因为证件照片处理得到精细人像只是第一步而已。
下面看生成白色背景样图。
在这里插入图片描述

从处理的图片中可以看出。paddleseg对复杂背景下人像前景的Mask提取已相当不错了。

得到处理好的前景图后,就可以用 人脸识别方法得到证件照片了。
如下图

在这里插入图片描述

证件照根据不同证件要求各不相同,但我们可以这样处理。用人脸识别算法找到人脸,算出人脸的宽度,然后根据比例得到证件照。根据人眼的位置决定上下的高度。然后根据脸外侧的特征点决定是否校正倾斜度。
在没有应用paddleseg进行预处理人像前,我使用了多种分割算法来分割前景,对背景色单一有较好效果,复杂的背景几乎无法直视。

在这里插入图片描述

从以上处理过程可以看出,其实证件照的自动生成最重要的一步就是分割人像前景,由于只是使用了像素提取没有做到分毫毕现和深度融合。改进的算法就是对mask与前景的融合算法改进就可以实现。做出来后再跟大家分享。

第二次改进后生成的照片有了较好的提高
进一步改进后的免费版本下载
csdn:https://download.csdn.net/download/slmrj/12391944

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值