使用Python给头像加上圣诞帽或圣诞老人小图标附源码


Posted in Python onDecember 25, 2019

随着圣诞的到来,想给给自己的头像加上一顶圣诞帽。如果不是头像,就加一个圣诞老人陪伴。

使用Python给头像加上圣诞帽或圣诞老人小图标附源码

使用Python给头像加上圣诞帽或圣诞老人小图标附源码

用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhihu.com/p/32283641

主要流程
素材准备
人脸检测与人脸关键点检测

调整大小,添加帽子

用dlib的正脸检测器进行人脸检测,用dlib提供的模型提取人脸的五个关键点

使用Python给头像加上圣诞帽或圣诞老人小图标附源码

调整帽子大小,带帽

选取两个眼角的点,求中心作为放置帽子的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))
    if resized_hat_h > y:
     resized_hat_h = y-1
    # 根据人脸大小调整帽子大小
    resized_hat = cv2.resize(rgb_hat,(resized_hat_w,resized_hat_h))

添加小图标

当然有些同学的头像不是人物或不能准确的识别无关,所有添加了标识。(即在右下添加小图标)。

小图标避免单调,是从图标中随机选择一个:

使用Python给头像加上圣诞帽或圣诞老人小图标附源码

代码如下:

# 水印图片
 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)

结果如下

使用Python给头像加上圣诞帽或圣诞老人小图标附源码

源代码:https://github.com/silencesmile/Christmas_Hat

总结

以上所述是小编给大家介绍的使用Python给头像加上圣诞帽或圣诞老人小图标附源码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中的with...as用法介绍
May 28 Python
Python基于checksum计算文件是否相同的方法
Jul 09 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
如何在Django配置文件里配置session链接
Aug 06 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
Python Numpy库常见用法入门教程
Jan 16 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
Mar 01 Python
python脚本第一行如何写
Aug 30 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
python动态规划算法实例详解
Nov 22 Python
如何基于python测量代码运行时间
Dec 25 #Python
python字典setdefault方法和get方法使用实例
Dec 25 #Python
Python 内置变量和函数的查看及说明介绍
Dec 25 #Python
python @propert装饰器使用方法原理解析
Dec 25 #Python
python 消除 futureWarning问题的解决
Dec 25 #Python
提升python处理速度原理及方法实例
Dec 25 #Python
python pip安装包出现:Failed building wheel for xxx错误的解决
Dec 25 #Python
You might like
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
简述php环境搭建与配置
2016/12/05 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
php实现图片压缩处理
2020/09/09 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
python实现按长宽比缩放图片
2018/06/07 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
详解Python self 参数
2019/08/30 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
蛋白质世界:Protein World
2017/11/23 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
劳动竞赛口号
2014/06/16 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
单位推荐信范文
2015/03/27 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android