如何给头像增加圣诞帽
import cv2
import random
# OpenCV 人脸检测
face_patterns = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
sample_image = cv2.imread('img/fffc.jpg')
faces = face_patterns.detectMultiScale(sample_image,
scaleFactor=1.1,
minNeighbors=8,
minSize=(50, 50))
# 圣诞帽
hats = []
for i in range(4):
hats.append(cv2.imread('img/hat%d.png' % i, -1))
for face in faces:
# 随机一顶帽子
hat = random.choice(hats)
# 调整帽子尺寸
scale = face[3] / hat.shape[0] * 1.25
hat = cv2.resize(hat, (0, 0), fx=scale, fy=scale)
# 根据人脸坐标调整帽子位置
x_offset = int(face[0] + face[2] / 2 - hat.shape[1] / 2)
y_offset = int(face[1] - hat.shape[0] / 2)
# 计算贴图位置,注意防止超出边界的情况
x1, x2 = max(x_offset, 0), min(x_offset + hat.shape[1], sample_image.shape[1])
y1, y2 = max(y_offset, 0), min(y_offset + hat.shape[0], sample_image.shape[0])
hat_x1 = max(0, -x_offset)
hat_x2 = hat_x1 + x2 - x1
hat_y1 = max(0, -y_offset)
hat_y2 = hat_y1 + y2 - y1
# 透明部分的处理
alpha_h = hat[hat_y1:hat_y2, hat_x1:hat_x2, 3] / 255
alpha = 1 - alpha_h
# 按3个通道合并图片
for c in range(0, 3):
sample_image[y1:y2, x1:x2, c] = (alpha_h * hat[hat_y1:hat_y2, hat_x1:hat_x2, c] + alpha * sample_image[y1:y2, x1:x2, c])
# 保存最终结果
cv2.imwrite('faces_detect.png', sample_image)
依赖的库在https://github.com/zwd1993/faceHats
如何给头像增加圣诞帽相关推荐
- 微信官方都辟谣,可真有技术人用 AI、大数据实现头像添加圣诞帽了!
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 从昨天到现在,朋友圈里便持续性地见到了许多"请给我一顶圣诞帽@微信官方" ...
- 使用paddlehub给头像添加圣诞帽(GUI版)
我的前一篇博客:使用PaddleHub给头像添加圣诞帽已经详细介绍了如何使用paddlehub给头像添加一个圣诞帽,但之前的版本由于时间仓促还存在一些问题: 圣诞帽超出头像边界程序会报错 无法识别出人 ...
- python画圣诞帽_用Python给头像加上圣诞帽
原标题:用Python给头像加上圣诞帽 随着圣诞的到来,大家纷纷@官微给自己的头像加上一顶圣诞帽.我们有必要写一个程序来做这件事情. 用到的工具 OpenCV dlib 流程 一.素材准备 首先我们需 ...
- 用Python给头像加上圣诞帽或圣诞老人小徽章
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章: https://zhuanlan.zh ...
- python自动给头像添加圣诞帽
通知:今年的圣诞节推迟到2021年1月8日,因为圣诞老人到了之后还要被隔离14天. 马上就要圣诞节了,大家想好送什么礼物给自己对象了吗? 因为疫情原因,圣诞老人不能来中国给我们送礼物了,所以今年由我来 ...
- 超简单 Python 头像戴圣诞帽教程
还记得疫情之初,我们用Python给头像戴口罩的文章吗? 开工第一天,先用Python戴个口罩 当时只是简单的调用了第三方模块将口罩图片替换入原图,内容非常简短. 今天,将为大家提供一个能够通过以下三 ...
- 不用P图!用Python给头像加圣诞帽并制作成可执行软件!
文 | 闲欢 来源:Python 技术「ID: pythonall」 随着圣诞节的到来,节日气氛也越来越浓厚.大街上随处可见挂满饰品的圣诞树,好多小伙伴的头上也多了一顶红色牛角的圣诞帽. 往年在这个时 ...
- python画圣诞帽_用Python给头像加上圣诞帽或圣诞老人小图标
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...
- 用python给头像加圣诞帽
首页 算法 社区 帮助 登录 注册 首页 帮助 常见问题 算法管理 算法上传 开发与部署规范 C/C++ Python git管理 算法审核规则 项目说明 个人中心 关于极市 隐私策略 社区 文章详情 ...
最新文章
- HttpRequest接口测试
- Tricks with Direct Memory Access in Java
- varchar 求和 非数值_考研线性代数 解题方法汇总(非知识点汇总)
- python杀线程_python-有什么办法可以杀死线程吗?
- ubuntu 下的文件校验(md5、sha256)
- 【转】VC6下安装与配置OpenCV1.0
- android 代码混淆 垃圾代码制造
- 工具-cloc代码行数统计工具
- VS2019安装QT5.14.1全过程
- oracle instance client 下载,安装Oracle Instance Client
- 高通平台开发系列讲解(音频篇)Codec驱动移植步骤
- 缺陷管理工具-QC篇
- 关于skb_make_writable()函数
- java license机制dll_(转)使用truelicense实现用于JAVA工程license机制(包括license生成和验证)...
- 用python做成绩分析做表格_excel成绩表-懂Excel就能轻松入门Python数据分析包pandas(三):制作成绩条...
- 5 torch.utils.data (Dataset,TensorDataset,DataLoader)
- Oracle使用脚本导出数据(spool)
- 线性代数回顾(多视图重建)
- 怎么用计算机管理你的外卖订单,外卖系统怎么确定收到订单 外卖接单软件怎么做...
- C语言-switch-case语句与多分支结构