使用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标准异常和异常处理详解
Feb 02 Python
python简单分割文件的方法
Jul 30 Python
分享6个隐藏的python功能
Dec 07 Python
Tensorflow环境搭建的方法步骤
Feb 07 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
python3获取url文件大小示例代码
Sep 18 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
Keras实现DenseNet结构操作
Jul 06 Python
python 自动刷新网页的两种方法
Apr 20 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 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&java(一)
2006/10/09 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
PHP读取Excel类文件
2017/05/15 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
js模块加载方式浅析
2017/08/12 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
深入理解javascript中的this
2021/02/08 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
python实现电子书翻页小程序
2019/07/23 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
怎样写好自我评价呢?
2014/02/16 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
餐厅开业活动方案
2019/07/08 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
mysql的单列多值存储实例详解
2022/04/05 MySQL
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server