使用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 相关文章推荐
Django Admin实现上传图片校验功能
Mar 06 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
python使用pyqt写带界面工具的示例代码
Oct 23 Python
python实现排序算法解析
Sep 08 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
python 命名规范知识点汇总
Feb 14 Python
python 使用递归回溯完美解决八皇后的问题
Feb 26 Python
python实现ftp文件传输功能
Mar 20 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
python源文件的字符编码知识点详解
Mar 04 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
javascript arguments使用示例
2014/12/16 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python中标准模块importlib详解
2017/04/16 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python 把列表转化为字符串的方法
2018/10/23 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
体育活动总结范文
2014/05/04 职场文书
校外活动方案
2014/08/28 职场文书
秦兵马俑导游词
2015/02/02 职场文书
商务英语求职信范文
2015/03/19 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
2016年少先队活动总结
2016/04/06 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
JavaScript实现队列结构过程
2021/12/06 Javascript