利用python自动生成证件照

淩亂°似流年 2023-07-19 08:29 145阅读 0赞

沙雕模式开启

又到了一次交个人信息表的时候了,在word照片框贴照片时发现自己之前放在e盘的电子照片不见了,我丢。之前去照相馆就只留了一张底片,疫情当前(打游戏懒得出门),作为时代好青年,出门拍照是不可能的,为一张电子照掏钱这辈子都不可能的。我就上网找有没有好用的api可以拉拉线,做几张证件照。没想到还真找到了。
在这里插入图片描述
没错,就是这个网站,看起来还挺不错,提供了api给开发者(菜鸟人员)方便快捷地进行抠图(沙雕)。
熟悉的注册登录后,点击api那里,获取一个密钥,一个月可以免费试用50次抠图。
然后就可以抠图了。可以将你的照片只保留你的肖像,其他的地方切换为白色背景。

下一步操作

接下来就需要将白色背景换成红色或者蓝色了,这就需要用到一个Image的模块了,然后去cmd下载就好了。

  1. pip install Image

然后你就会惊奇地发现
在这里插入图片描述
没错,报错了。

这个需要给它注明安装的路径,或者可以直接使用映像文件进行处理。我用了清华的但是也不行,就换了一个豆瓣的,结果是肯定的(不然我还敢在这里沙雕?)。

  1. pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com --target=d:\python\python37\lib\site-packages Image

在这里插入图片描述
success开头一般都是吉祥的。这样就好了。

实图与效果图如下:(为了和谐页面,我打了码)
在这里插入图片描述
在这里插入图片描述
最后就是代码了。

  1. #导入库
  2. import os
  3. from PIL import Image
  4. from PIL import ImageDraw,ImageFont
  5. from removebg import RemoveBg
  6. rmbg = RemoveBg("q7QUzDPdZWBF1qXDXGd5qYWw", "in.log") # 引号内是你获取的API
  7. rmbg.remove_background_from_img_file(r"E://图片处理//4.jpg") #图片的路径名
  8. im = Image.open('E://图片处理//4.jpg_no_bg.png')
  9. #draw = ImageDraw.Draw(im)
  10. #fnt = ImageFont.truetype(r'C:\Windows\Fonts\STXINGKA.TTF',50)
  11. #draw.text((40, 140), u'运动改变人生', fill='black', font=fnt)
  12. x,y = im.size #图片大小
  13. try:
  14. p = Image.new('RGBA', im.size, (255,0,0))#底色换为红色
  15. p.paste(im, (0, 0, x, y), im)
  16. p.save('E://图片处理//4.png')#换色完成后保存的名字
  17. print('抠图成功!')
  18. except:
  19. pass

中间注释部分是因为我做了一个跑步女的试验图片,效果有点丑,因为色差原因,利用alpha通道抠图效果不好。但是这些代码用于自拍生成是可以的。
在这里插入图片描述

另一种方法

下面还有另一种方法,就是调用paddlehub库,需要另行下载文件。
先用这一行代码下载库

  1. python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

再用这一行下载模块

  1. pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com --target=d:\python\python37\lib\site-packages paddlehub

然后运行代码就能抠图了。

  1. import os, paddlehub as hub
  2. humanseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型
  3. path = 'E:\\图片\\' # 文件目录
  4. files = [path + i for i in os.listdir(path)] # 获取文件列表
  5. results = humanseg.segmentation(data={ 'image':files}) # 抠图

但是其缺点就是,抠图速度较慢,但是重在于免费。

结束语

点击关注,收藏,留赞不白嫖,我们都是好朋友。

发表评论

表情:
评论列表 (有 0 条评论,145人围观)

还没有评论,来说两句吧...

相关阅读

    相关 自己制作证件回执

    今天身份证过期,去办理身份证,照个像回执收了30¥给个6张一寸小图片,照的还不好看,因此我觉得是不是可以自己弄个回执,照片也是浪费,没有什么用,于是自己摸索了教程 1.拍一张

    相关 利用python自动生成证件

    沙雕模式开启 又到了一次交个人信息表的时候了,在word照片框贴照片时发现自己之前放在e盘的电子照片不见了,我丢。之前去照相馆就只留了一张底片,疫情当前(打游戏懒得出门)

    相关 利用MATLAB 实现证件换底色教程

    手头只有白色的一寸照,可是有时候又要求必须要蓝色或红色的底色,又得跑去照相馆照花个大几十,抓头…临时下庞大的PS再抠图又太麻烦,抓头…用matlab的图形处理软件几句代码不是轻