代码 抠图_教你几行Python代码秒杀PS大神,瞬间完成抠图+合成图工作


       由知乎看到了AI换脸软件Deepfake所受启发,在我现有水平基础上,看看能不能先写一个程序实现抠图,把人像或物象的所要部分抠出来,弄成透明的png图像,也是PS抠图操作的基本流程,现在发现Python完成只要两行代码一秒搞定,好牛,然后就再加工给它添加背景颜色或者高级点添加背景图片合成,这样就达到了“想去哪就去哪”的PS效果,而且是秒杀PS操作,能抢别人的饭碗了,牛批。前者很简单,只添加个背景颜色,网上有大量的教程可自寻解答,后者我在网上找了好久才找到透明图和实体图合并的较准确方法,然后封装为自己所用,分享出来,欢迎广大读者朋友们订阅和点赞支持一下谢谢,以下干货:

        第一步抠图,安装removebg别人写好的库

from removebg import RemoveBg

        然后读取目标图片保存为透明图片在本地,三种目标图片读取方式,一是读取本地图片( remove_background_from_img_file),二是读取网络地址图片(remove_background_from_img_url),三是读取图片转换为的base64字符串(remove_background_from_base64_img),都可从源码获取,我这里采用第一种

rg=RemoveBg("你的api_key","error.log")
rg.remove_background_from_img_file(img_path)

        这里要去https://www.remove.bg/这个官网上注册下你的帐号,然后把key传入api,指定下log文件路径。总共能免费转50个图,用完后调一次接口收费一块。

        因为我是拿自己照片做的实战,没办法为了显示生动活泼的效果只好英勇献身了。

        原图:

4086211e8d81f2d0f43042f9f23da664.png

        抠图后:

99597ea8e7575936406983b8dee707a7.png

效果不赖吧,看边缘锐利度,比手工抠省时省力多了

然后就是添加背景图了(蒙多,想去哪就去哪)

pip install pillow,专门绘图的强大的库

from PIL import Image# 加载刚才透明的抠好的图片base_img = Image.open(r'2.jpg_no_bg.png')

# 新建透明底图,大小和抠好的图一样大小,mode使

用RGBA,保留Alpha透明度,颜色为透明

# Image.new(mode, size, color=0),color可以用

tuple表示,分别表示RGBA的值

target=Image.new('RGBA',base_img.size,(0,0,0,0))# 指定透明区域,只要知道图像像素按需调整即可box = (0,-100,698,889)# 加载实体背景图region = Image.open(r'c.jpg')# 确保图片是RGBA格式,大小和box区域一样region = region.convert("RGBA")# 先将实体背景像合成到底图上target.paste(region, box)

# 将透明图覆盖上去,透明区域将背景图像显示出来。

# 第一个参数表示需要粘贴的图像,中间的是坐标,

最后是一个是mask图片用于指定透明区域显示底图。

target.paste(base_img, (0, 0), base_img)

target.show()

target.save('out.png') # 保存图片

第三步所得图像结果,我在网上找了张埃菲尔铁塔

bc263082dfad913b9ae8ce6775c0b5cd.png

虽然人像有一点光晕轮廓,但是不耽误它快准好呀。

        That's all,当然也可以抠出虫鸟花兽等物象图,拿我的源码可以去某宝某鱼或威客网上PS制图抢别人饭碗了,现在你也是个PS大神~以前自己P张图要半天,现在秒抠秒合成,不得不说Python很强大,日新月异。

        有不懂的问题欢迎在本微信公众号后台发送消息或加我好友(左上角作者)问我。

        纯手打原创,实用又好玩,欢迎订阅关注下本微信公众号和点个右下角在看,后续更多精彩文章不容错过,欢迎转发,转载请联系我谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值