使用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调用C/C++动态链接库的方法详解
Jul 22 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
python批量处理txt文件的实例代码
Jan 13 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
python的reverse函数翻转结果为None的问题
May 11 Python
通过代码简单了解django model序列化作用
Nov 12 Python
Python实现微信表情包炸群功能
Jan 28 Python
python反编译教程之2048小游戏实例
Mar 03 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
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
js动态切换图片的方法
2015/01/20 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
layui的select联动实现代码
2019/09/28 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
公司委托书格式范文
2014/04/04 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
2015年维修工作总结
2015/04/25 职场文书
地球上的星星观后感
2015/06/02 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
python如何在word中存储本地图片
2021/04/07 Python
goland 恢复已更改文件的操作
2021/04/28 Golang
MySQL 数据类型选择原则
2021/05/27 MySQL
python实现自定义日志的具体方法
2021/05/28 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python