使用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的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
Python中atexit模块的基本使用示例
Jul 08 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
Django中Model的使用方法教程
Mar 07 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
Python中的__init__作用是什么
Jun 09 Python
Python-for循环的内部机制
Jun 12 Python
python生成xml时规定dtd实例方法
Sep 21 Python
python 第三方库paramiko的常用方式
Feb 20 Python
Python基础之进程详解
May 21 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
在视频前插入广告
2006/11/20 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
自我评价怎么写正确呢?
2013/12/02 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
职务聘任书范文
2014/03/29 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python