使用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的消息队列包SnakeMQ使用初探
Jun 29 Python
Python使用filetype精确判断文件类型
Jul 02 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
Python3 使用pillow库生成随机验证码
Aug 26 Python
ubuntu上安装python的实例方法
Sep 30 Python
python离线安装外部依赖包的实现
Feb 13 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
python 统计代码耗时的几种方法分享
Apr 02 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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使用cookie保存登录用户名的方法
2015/01/26 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
js 小数取整的函数
2010/05/10 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python heapq使用详解及实例代码
2017/01/25 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
详解Python3中ceil()函数用法
2019/02/19 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python绘制随机网络图形示例
2019/11/21 Python
opencv 阈值分割的具体使用
2020/07/08 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
企业员工培训感言
2014/02/26 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
保管员岗位职责
2015/02/14 职场文书
开除员工通知
2015/04/22 职场文书
初中团委工作总结
2015/08/13 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle