借鉴了公众号: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实现相关推荐

  1. python画圣诞帽_用Python给头像加上圣诞帽

    原标题:用Python给头像加上圣诞帽 随着圣诞的到来,大家纷纷@官微给自己的头像加上一顶圣诞帽.我们有必要写一个程序来做这件事情. 用到的工具 OpenCV dlib 流程 一.素材准备 首先我们需 ...

  2. 用Python就可以给你的头像戴上圣诞帽,别@微信团队了!

    本文授权转自微信公众号CVPy(ID:x-cvpy) 作者 | 冰不语 引言 随着圣诞的到来,大家纷纷@官方微信给自己的头像加上一顶圣诞帽.当然这种事情用很多P图软件都可以做到.但是作为一个学习图像处 ...

  3. 你们要的圣诞帽~ Python实现

    借鉴了公众号:crossion 首先你需要自己配置好opencv环境  window或者linux网上都有教程的- 或者更懒点,直接网上下haarcascade_frontalface_default ...

  4. 用Python给头像加上圣诞帽或圣诞老人小徽章

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

  5. 用Python给头像加上圣诞帽

    正文共3743个字,9张图,预计阅读时间22分钟. 01 引言 随着圣诞的到来,大家纷纷@官方微信给自己的头像加上一顶圣诞帽.当然这种事情用很多P图软件都可以做到.但是作为一个学习图像处理的技术人,还 ...

  6. python自动给头像添加圣诞帽

    通知:今年的圣诞节推迟到2021年1月8日,因为圣诞老人到了之后还要被隔离14天. 马上就要圣诞节了,大家想好送什么礼物给自己对象了吗? 因为疫情原因,圣诞老人不能来中国给我们送礼物了,所以今年由我来 ...

  7. 超简单 Python 头像戴圣诞帽教程

    还记得疫情之初,我们用Python给头像戴口罩的文章吗? 开工第一天,先用Python戴个口罩 当时只是简单的调用了第三方模块将口罩图片替换入原图,内容非常简短. 今天,将为大家提供一个能够通过以下三 ...

  8. 都在发做圣诞树,我来点不一样的,用python给对象戴一顶圣诞帽

    文章目录 一.啰嗦两句 二.流程思路 三.要准备这些 四.图像制作 五.软件界面 六.打包为exe软件 七.写在后面 一.啰嗦两句 这不圣诞节了,看着大家都说怎么做圣诞树,我寻思,这玩意做出来你也只能 ...

  9. 不用P图!用Python给头像加圣诞帽并制作成可执行软件!

    文 | 闲欢 来源:Python 技术「ID: pythonall」 随着圣诞节的到来,节日气氛也越来越浓厚.大街上随处可见挂满饰品的圣诞树,好多小伙伴的头上也多了一顶红色牛角的圣诞帽. 往年在这个时 ...

  10. python猪脸识别_别@微信团队了,我用Python给自己戴上了圣诞帽!

    原标题:别@微信团队了,我用Python给自己戴上了圣诞帽! " 这几天,你的朋友圈一定被"请给我一顶圣诞帽@微信官方"刷屏了--很多不知真相的网友也纷纷求问如何给自己的 ...

最新文章

  1. 有漏洞无作为才可怕、可耻!
  2. Andorid中的HAL
  3. Android项目中出现的Plugin with id ‘kotlin-android‘ not found解决方法
  4. Qt修炼手册6_图形:图形视图框架
  5. 看板系统的表格动态数据显示
  6. 荣耀20首现身!“保密壳”却暴露双排摄像头
  7. 马化腾入选《财富》领袖50强;微博出海布局AI;Android手机爆发病毒 | 一周业界事...
  8. 双步位移求解特征值matlab,数值分析——带双步位移的QR分解求特征值算法
  9. bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
  10. ansible+packer+terraform在aws上布署web服务器
  11. 两个摄像头合成一路_64个高空抛物摄像头安装到位 同德社区居民双手点赞
  12. 拓端tecdat|R语言旅行推销员问题TSP
  13. 大教堂与集市 The Cathedral The Bazaar -- 这是当代软件技术领域最重要的著作
  14. 兼容各个浏览器的H.264播放: H.264+HTML5+FLOWPLAYER+WOWZA+RMTP
  15. 包含源文件 —— 是奇技淫巧还是饮鸩止渴?
  16. mac datagrip如何建立本地链接
  17. visual studio2017登录时需要更新 microsoft edge 或当前浏览器的最新版本
  18. 软件测试常见的问题概略
  19. js实现点赞、取消点赞思路(前端技术适用)
  20. layui后台管理首页配置

热门文章

  1. ClipCursor
  2. springboot的mvn packing
  3. 70元到月入10万的大学生创业故事
  4. python 将字符串时间转换为date对象
  5. 5G核心网用户数据演进方案
  6. 键盘导航网:创意简洁导航网站,让你的键盘变网站导航
  7. elementui table在safari浏览器用了超过两行省略号样式错乱
  8. OpenCV检测火焰
  9. c语言 两个case连在一起,嵌入式C语言 2选择结构 SWITCH CASE
  10. 创龙AD+全志T3 ad_display 开发案例