【python】证件照更换背景颜色
1、 介绍
本文使用u2net, pillow, 及backgroundremover进行照片背景的替换
2、安装
pip install pillow pip install backgroundremover
3、u2net介绍
https://github.com/xuebinqin/U-2-Net
CSDN镜像地址(可能不是最新)
https://gitcode.net/mirrors/xuebinqin/U-2-Net?utm_source=csdn_github_accelerator
4、实现
#!/usr/bin/env python # -*- coding:utf-8 -*- import os from PIL import Image # 输入 in_path = "./test.jpg" # 输出 out_path = "./white_photo.png" no_bg_photo = './no_bg_photo.png' # 要替换的背景颜色 color = "white" # 红:red、蓝:blue、黑:black、白:white # 去掉背景颜色 os.system(f'backgroundremover -i "{in_path}" -o "{no_bg_photo}"') # 加上背景颜色 no_bg_image = Image.open(no_bg_photo).convert("RGBA") x, y = no_bg_image.size new_image = Image.new('RGBA', no_bg_image.size, color=color) new_image.paste(no_bg_image, (0, 0, x, y), no_bg_image) new_image.save(out_path)
第一次执行会自动下载模型,可能会很慢
如果下载不下来,就要想办法了,采用第三方下载工具或者魔法
5、百度随便找了个证件照
原图
没背景的图
换成白色背景的图
至此基本完成, 只是边缘处理的没那么理想,还需要调试
6、其他
很多微信小程序,有免费使用的次数,效果还不错,不喜欢折腾的,可以用现成的
参考链接: