随着圣诞的到来,想给给自己的头像加上一顶圣诞帽。如果不是头像,就加一个圣诞老人陪伴。

用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhihu.com/p/32283641

主要流程

素材准备

人脸检测与人脸关键点检测

调整大小,添加帽子

用dlib的正脸检测器进行人脸检测,用dlib提供的模型提取人脸的五个关键点

调整帽子大小,带帽

选取两个眼角的点,求中心作为放置帽子的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))

添加小图标

当然有些同学的头像不是人物或不能准确的识别无关,所有添加了标识。(即在右下添加小图标)。

小图标避免单调,是从图标中随机选择一个:

代码如下:

# 水印图片

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)

结果如下

源代码:https://github.com/silencesmile/Christmas_Hat

总结

以上所述是小编给大家介绍的使用Python给头像加上圣诞帽或圣诞老人小图标附源码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文标题: 使用Python给头像加上圣诞帽或圣诞老人小图标附源码

本文地址: http://www.cppcns.com/jiaoben/python/295282.html

python画圣诞帽_使用Python给头像加上圣诞帽或圣诞老人小图标附源码相关推荐

  1. python画圣诞老人_使用Python给头像加上圣诞帽或圣诞老人小图标附源码

    随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...

  2. 【Python】基金/股票 最大回撤率计算与绘图详解(附源码和数据)

    如果你想找的是求最大回撤的算法,请跳转:[Python] 使用动态规划求解最大回撤详解 [Python]基金/股票 最大回撤率计算与绘图详解(附源码和数据) 0. 起因 1. 大成沪深300指数A 5 ...

  3. C++课程设计实训_基于多态书籍信息管理系统的设计与实现、附源码、有过程截图

    C++课程设计实训_基于多态书籍信息管理系统的设计与实现.附源码,有过程截图 书籍信息管理系统的设计与实现(基于多态) 学生姓名: 学 号: 指导老师: 所 在 系: 专 业: 班 级: C++课程设 ...

  4. python画羊_『Python Kivy』官方乒乓球游戏示例解析

    本篇文章用于对Kivy框架官方所给出的一个「乒乓球」小游戏的源码进行简单地解析.我会尽可能的将方方面面的内容都说清楚.在文章的最下方为官方所给出的这个小游戏的教程以及游戏源码. 由于篇幅所限,本文只简 ...

  5. css3 烟 蚊香_如何使用纯CSS实现蚊香燃烧的效果(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现传统蚊香燃烧的效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 每日前端实战系列的全部源代码请从 ...

  6. 用python画风车_用Python画小女孩放风筝的示例

    我就废话不多说了,直接上代码吧! # coding:utf-8 2import turtle as t 3import random 4# 画心 5def xin(): 6 def curvemove ...

  7. 用python画圆锥_用python画一幅美瞳,今日份来自程序员的浪漫

    如果说,眼睛是心灵的窗户,那么,美瞳就是心灵的彩窗,就像下图中这样. 而我们今天所要挑战的,就是用python画美瞳,而且是五分钟之内画三百副争奇斗艳.各领风骚.绝不重样的美瞳.作为这颗地球上最纯情的 ...

  8. 怎么用python画房子_用python画一个小房子

    用python画一个小房子 2020年07月22日 | 萬仟网IT编程 | 我要评论 如何用python画一个小房子?效果图如下:代码如下:import turtle# 前置p = turtle.Pe ...

  9. python画抛物线_在python中利用最小二乘拟合二次抛物线函数的方法

    1.最小二乘也可以拟合二次函数 我们都知道用最小二乘拟合线性函数没有问题,那么能不能拟合二次函数甚至更高次的函数呢?答案当然是可以的.下面我们就来试试用最小二乘来拟合抛物线形状的的图像. 对于二次函数 ...

最新文章

  1. python中的raw string的使用
  2. 这个VS Code扩展可以自动生成Python文档字符串
  3. 思考灰鸽子之后,新***的运营模式
  4. Kali Linux 2020.1安装桌面
  5. 拼接名字_一个最简单的办法,教你识别原切肉和拼接肉
  6. 天平秤重问题(三进制)
  7. 【完整流程】用VSCode替换Vivado默认编辑器
  8. 免费mysql空间_php+mysql免费空间
  9. 微信第三方平台-授权流程经验分享
  10. 老司机带你在MySQL领域“大吉大利,晚上吃鸡”
  11. pymysql连接mysql数据库try_pymysql 连接数据库和基本使用
  12. 2021-06-25绝对定位的理解
  13. [转载]c# winform 获取当前程序运行根目录
  14. Recycler 病毒(jwgkvsq.vmx)手动查杀
  15. 互联网医疗智能客服平台有什么优势
  16. 咸鱼前端—html常用标签
  17. PCB设计经典资料学习汇总
  18. 游戏出海行业现状概况
  19. 数据库防火墙应具备哪些能力
  20. matlab2018在图片上添加文字并保存且图片没有白边

热门文章

  1. 中国大学MOOC计算机程序设计(C++)——第2周 简单信息的表示和基本运算代码
  2. 史上最全最实用HBuilder快捷键大全
  3. Android 开发培训(04)--Android开发核心(三)
  4. 不好意思,这里只是课外小抄哈~
  5. 微信发照片会保存到服务器吗,微信拍摄的照片存放到什么路径 微信拍摄照片的保存路径介绍...
  6. USB TYPE-C详解
  7. 利用转换器将cad转pdf格式
  8. WWDC20 发布会你看了吗?看完 WWDC20 后的感受
  9. 数据库版本控制Flyway
  10. GNU GRUB version 0.97 (630K lower /2053824K upper memory)