你们要的圣诞帽~ Python实现
借鉴了公众号:crossion
首先你需要自己配置好opencv环境 window或者linux网上都有教程的~
或者更懒点,直接网上下haarcascade_frontalface_default.xml拿来用就行~(我就是......)
代码如下:
#coding=utf-8
import cv2
import random# OpenCV 人脸检测
face_patterns = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') #opencv的人脸检测库文件
sample_image = cv2.imread('img/lyf.jpg') #你要加帽子的头像图像
faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=8,minSize=(50, 50)) #这三行参数可调,以识别出人脸。#返回人脸的坐标 x y w h :xy左上角的点的坐标 wh是人脸的长和宽.
# for (x, y, w, h) in faces:
# cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
#
# cv2.imwrite('face_detected.png', sample_image); #把人脸框出来.
#
# print faces# 圣诞帽
hats = []
for i in range(4): #备选4顶帽子你去换hats.append(cv2.imread('img/hat%d.png' % i, -1))for face in faces: #一张头像内多张脸的话,则需要face循环.# 随机一顶帽子hat = random.choice(hats)print hat.shape# 调整帽子尺寸print face[3] #w值 即框出的人脸的宽.scale = float(face[3]) / hat.shape[0] * 1.5 #这里不要把float漏了,不然代码一直报错的,因为python默认当分子分母均是int的话,分子小于分母则商为0.print scalehat = 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 - x1hat_y1 = max(0, -y_offset)hat_y2 = hat_y1 + y2 - y1# 透明部分的处理alpha_h = hat[hat_y1:hat_y2, hat_x1:hat_x2, 3] / 255alpha = 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)
但是,这个只能给人脸加帽子,因为用的是人脸检测的分类器。
也可以实现猫脸的,但是要换成这个: haarcascade_frontalcatface.xml
上传下效果图~
看,多张人脸的时候,帽子是不一样的,因为每次加帽子是随机选帽子的哈哈哈~
另:贴一个看到的关于自己训练出猫脸的模型。http://lib.csdn.net/article/opencv/32910
我尝试去实现了,但在求协方差矩阵后,建立猫脸模型时出现问题,在等原博主的回复。。。待解决。。。
你们要的圣诞帽~ Python实现相关推荐
- python画圣诞帽_用Python给头像加上圣诞帽
原标题:用Python给头像加上圣诞帽 随着圣诞的到来,大家纷纷@官微给自己的头像加上一顶圣诞帽.我们有必要写一个程序来做这件事情. 用到的工具 OpenCV dlib 流程 一.素材准备 首先我们需 ...
- 用Python就可以给你的头像戴上圣诞帽,别@微信团队了!
本文授权转自微信公众号CVPy(ID:x-cvpy) 作者 | 冰不语 引言 随着圣诞的到来,大家纷纷@官方微信给自己的头像加上一顶圣诞帽.当然这种事情用很多P图软件都可以做到.但是作为一个学习图像处 ...
- 你们要的圣诞帽~ Python实现
借鉴了公众号:crossion 首先你需要自己配置好opencv环境 window或者linux网上都有教程的- 或者更懒点,直接网上下haarcascade_frontalface_default ...
- 用Python给头像加上圣诞帽或圣诞老人小徽章
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章: https://zhuanlan.zh ...
- 用Python给头像加上圣诞帽
正文共3743个字,9张图,预计阅读时间22分钟. 01 引言 随着圣诞的到来,大家纷纷@官方微信给自己的头像加上一顶圣诞帽.当然这种事情用很多P图软件都可以做到.但是作为一个学习图像处理的技术人,还 ...
- python自动给头像添加圣诞帽
通知:今年的圣诞节推迟到2021年1月8日,因为圣诞老人到了之后还要被隔离14天. 马上就要圣诞节了,大家想好送什么礼物给自己对象了吗? 因为疫情原因,圣诞老人不能来中国给我们送礼物了,所以今年由我来 ...
- 超简单 Python 头像戴圣诞帽教程
还记得疫情之初,我们用Python给头像戴口罩的文章吗? 开工第一天,先用Python戴个口罩 当时只是简单的调用了第三方模块将口罩图片替换入原图,内容非常简短. 今天,将为大家提供一个能够通过以下三 ...
- 都在发做圣诞树,我来点不一样的,用python给对象戴一顶圣诞帽
文章目录 一.啰嗦两句 二.流程思路 三.要准备这些 四.图像制作 五.软件界面 六.打包为exe软件 七.写在后面 一.啰嗦两句 这不圣诞节了,看着大家都说怎么做圣诞树,我寻思,这玩意做出来你也只能 ...
- 不用P图!用Python给头像加圣诞帽并制作成可执行软件!
文 | 闲欢 来源:Python 技术「ID: pythonall」 随着圣诞节的到来,节日气氛也越来越浓厚.大街上随处可见挂满饰品的圣诞树,好多小伙伴的头上也多了一顶红色牛角的圣诞帽. 往年在这个时 ...
- python猪脸识别_别@微信团队了,我用Python给自己戴上了圣诞帽!
原标题:别@微信团队了,我用Python给自己戴上了圣诞帽! " 这几天,你的朋友圈一定被"请给我一顶圣诞帽@微信官方"刷屏了--很多不知真相的网友也纷纷求问如何给自己的 ...
最新文章
- 有漏洞无作为才可怕、可耻!
- Andorid中的HAL
- Android项目中出现的Plugin with id ‘kotlin-android‘ not found解决方法
- Qt修炼手册6_图形:图形视图框架
- 看板系统的表格动态数据显示
- 荣耀20首现身!“保密壳”却暴露双排摄像头
- 马化腾入选《财富》领袖50强;微博出海布局AI;Android手机爆发病毒 | 一周业界事...
- 双步位移求解特征值matlab,数值分析——带双步位移的QR分解求特征值算法
- bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
- ansible+packer+terraform在aws上布署web服务器
- 两个摄像头合成一路_64个高空抛物摄像头安装到位 同德社区居民双手点赞
- 拓端tecdat|R语言旅行推销员问题TSP
- 大教堂与集市 The Cathedral The Bazaar -- 这是当代软件技术领域最重要的著作
- 兼容各个浏览器的H.264播放: H.264+HTML5+FLOWPLAYER+WOWZA+RMTP
- 包含源文件 —— 是奇技淫巧还是饮鸩止渴?
- mac datagrip如何建立本地链接
- visual studio2017登录时需要更新 microsoft edge 或当前浏览器的最新版本
- 软件测试常见的问题概略
- js实现点赞、取消点赞思路(前端技术适用)
- layui后台管理首页配置