首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新春佳节到,小象送你一顶财神帽!

源小象文数据挖掘机

今天是大年三十,笔者在在此祝各位春节快乐!

新年迎财神,不如人人做财神!今日笔者就与大家分享一下如何用python编程给头像戴上财神帽,想要戴财神帽的同学千万不要错过哦!

首先,我们需要找到一顶财神帽素材,然后通过编程,成功地给目标头像戴上。

下面这张财神帽是笔者从网上精选出来的一个,暂且用它吧:

不过需要注意的是,帽子素材的背景必须是透明的,不能是白色,不然戴上后会盖住头像后面的背景,网上下载的财神帽子全都是背景不透明的,为了把帽子变成透明的,需要通过PS进行进行简单的抠图处理,把后面的背景抠成透明的,如果你嫌麻烦,那我教你一个更简单的办法:

你可以打开下面这个抠图的链接:

https://www.gaoding.com/koutu?f=ps_menu

上面有详细的动图会教你如何抠图:

按照上面的方法得到透明背景的财神帽后,就可以选择需要戴财神帽的目标头像了,这里暂且选择佟丽娅吧(笔者的菜,程序员朋友可以选择女友或准女友)。

好了,现在素材我们已经准备好了,下面进入程序员最感兴趣的步骤——编程。

首先,要实现给头像戴帽子,起码我们要知道头像的额头在哪、眼睛在哪吧,不然把帽子戴到了肩膀上岂不是很搞笑?要知道人脸的位置,就需要引出一个比较高大上的名词了——“人脸识别”,当然,现实中的人脸识别是很专业的一门学问,这里我们不需要考虑那么深远,只要实现简单的功能可以了,所以只需要引入特定的库就好了,要实现人脸识别,我们需要引入一个包到python中去,这个包就是opencv。下面讲解详细步骤:

1、在python环境下安装opencv

只需要在安装有python环境的终端输入命令:

pipinstallopencv-python

2、在python环境引入opencv包

3、此时,还需要引入opencv的一个人脸识别的xml文件,这个文件可以从CSDN下载,haarcascade_frontalface_alt2.xml,然后开始生成人脸识别的一个对象

4、接着就是读入头像和财神帽

5、因为上面的faces是会把一副图里面的所有头像都识别出来,此次我们只有一个头像,所以只取第一个就可以了

6、这一步比较关键,我们需要根据头像的大小来调整帽子的大小,不然戴上之后会出现二者不合适的情况,此处引入一个比例系数,然后resize帽子的大小

7、接着,就需要算出帽子在头像上需要戴的位置了,因为在上面返回的face变量中,包含了四个坐标,这四个坐标正好构成一个矩形把脸的部分识别出来了,所以只需要在矩形上面扣一顶帽子即可,不过在扣的时候需要手工调节下参数,或者通过技术手段更精确控制也可以,此处不做更复杂的操作

8、在得到上面的坐标后,就可以把帽子给扣上去了,不过此处需要做下简单处理,就是通过一个alpha参数来控制此处是显示头像的背景还是现实帽子的图像

好了,经过上面的处理,戴着财神帽的佟丽娅就得到了,看看赞不赞?喜欢的话,就送给更多的小伙伴吧!相信任谁都不会拒绝财神帽的,哈哈……

-END-

版权声明:本文为小象原创文章,转载请联系后台。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180215G0DVTU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券