使用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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。