使用Python给头像加上圣诞帽或圣诞老人小图标附源码
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽。如果不是头像,就加一个圣诞老人陪伴。
用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhihu.com/p/32283641
主要流程
素材准备
人脸检测与人脸关键点检测
调整大小,添加帽子
用dlib的正脸检测器进行人脸检测,用dlib提供的模型提取人脸的五个关键点
调整帽子大小,带帽
选取两个眼角的点,求中心作为放置帽子的x方向的参考坐标,y方向的坐标用人脸框上线的y坐标表示。然后我们根据人脸检测得到的人脸的大小调整帽子的大小,使得帽子大小合适。
#选取左右眼眼角的点
point1=shape.part(0)
point2=shape.part(2)
#求两点中心
eyes_center=((point1.x+point2.x)//2,(point1.y+point2.y)//2)
#cv2.circle(img,eyes_center,3,color=(0,255,0))
#cv2.imshow("image",img)
#cv2.waitKey()
#根据人脸大小调整帽子大小
factor=1.5
resized_hat_h=int(round(rgb_hat.shape[0]*w/rgb_hat.shape[1]*factor))
resized_hat_w=int(round(rgb_hat.shape[1]*w/rgb_hat.shape[1]*factor))
ifresized_hat_h>y:
resized_hat_h=y-1
#根据人脸大小调整帽子大小
resized_hat=cv2.resize(rgb_hat,(resized_hat_w,resized_hat_h))
添加小图标
当然有些同学的头像不是人物或不能准确的识别无关,所有添加了标识。(即在右下添加小图标)。
小图标避免单调,是从图标中随机选择一个:
代码如下:
#水印图片
num=random.randint(1,5)
logo=Image.open("img_icon/santa_"+str(num)+".png")
img=Image.open(imgPath)
print(img.size,logo.size)
#图层
layer=Image.new("RGBA",img.size,(255,255,255,0))
layer.paste(logo,(img.size[0]-logo.size[0],img.size[1]-logo.size[1]))
#覆盖
img_after=Image.composite(layer,img,layer)
#img_after.show()
img_after.save(outImgePath)
结果如下
源代码:https://github.com/silencesmile/Christmas_Hat
总结
以上所述是小编给大家介绍的使用Python给头像加上圣诞帽或圣诞老人小图标附源码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。