全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

教你用Python合成人像,足不出户游遍全球!

发布时间:2021-01-18 09:09:00
发布人:小千

      受到疫情反复的影响,很多小伙伴原定的出游计划都被打断了,也就拍不出美美的照片了,今天小千就来给大家分享一篇利用Python自动抠图并自动合成全新背景照片,让你足不出户游遍全球。

      功能简介

      我们今天实现的小功能就是,利用python来提取我们的人体图像,然后将我们提取的人像跟背景向结合,最后通过flask在界面上进行显示,其流程如下图所示:

1

      提取人像照片

      首先是人像的提取,对于人像的提取,可以利用removebg库,该库需要大家去它的官网进行注册,然后按照教程获取API密钥,并安装removebg库。

      由于该库免费使用的次数少,而且需要花钱进行续费,因此小编决定采用百度AI提供的接口,对于大家个人使用和验证来说,百度AI提供的免费次数足够使用。

      对于百度API的使用,大家也已经不陌生了,大家只需要创建对应的应用,然后获取到API的ID、KEY和SECRET_KEY即可调用其接口。

      程序如下图所示:

2

      上述的程序中,我们首先读入二进制的图片信息,然后通过百度API提供的接口,上传我们的图片信息,然后获取我们需要的前景图片信息,将其保存到本地文件夹下即可。

      有了我们的前景,也即人体的图像,接下来就是如何将其与背景结合,程序如下图所示:

3

      上述的程序中,我们首先利用Image读入背景图片和前景图片,然后将前景图片缩放到合适的尺寸,然后将前景图片进行分离,分离出前景图片中alpha通道的信息,alpha通道控制着图片的透明度信息,我们将前景粘贴到背景图片时,需要将alpha通道提取出来作为mask传入,否则组合出来的图片将不会有透明的效果。

      我们上面分别将处理了人像提取和前景背景图片的组合,并将两个函数组合在一起命名为travel_image。如下图所示:

4

      程序中传入的是前景图片和背景图片的路径,以及组合好之后组合图片的名字,rate指的是前景图片的大小调整比例。函数返回的是组合好的图片的保存路径。

      把程序跟Flask结合

      接下来我们要做的就是将程序与flask结合。其部分程序如下图所示:

5

      上述程序中,我们首先获取上传的两张图片,这里我们规定上传的图片是2张,分别是前景图片和背景图片;

      而且前景图片和背景图片的命名也有需求,就是背景图片的名称排序必须要在前景图片名称之前。程序判断如果上传的是2张图片,便会调用我们的travel_image函数,返回我们的保存路径;

      然后将路径信息传给html文件,html文件便会根据图片的地址来读取图片,并在页面上进行显示;

      最后,我们来展示一下整个程序的执行过程

6

      学习Python,可以参考千锋Python培训班推出的Python开发学习路线,结合千锋Python培训机构名师精心录制的全套Python视频教程,可以让你对学习Python需要掌握的知识有个清晰的了解,并快速入门Python开发。千锋Python培训机构视频教程分为三个大块:Python基础视频教程、Python高级视频教程、Python高手晋级视频教程。视频讲解通俗易懂,入门Python开发仅用此套视频足矣。想要获取免费Python学习路线和学习资料可以添加我们的Python技术交流qq群:790693323  加群找群管理领取即可,Python相关技术问题也可以加群解决,等你来哦~~~~

相关文章

RS232电平和TTL电平有什么不同?

RS232电平和TTL电平有什么不同?

2023-10-14
Go语言为什么能成为区块链主流开发语言?

Go语言为什么能成为区块链主流开发语言?

2023-10-14
有了基本数据类型,为什么还需要包装类型?

有了基本数据类型,为什么还需要包装类型?

2023-10-14
国产编程语言木兰(ulang)是什么?

国产编程语言木兰(ulang)是什么?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取