用Python给你的头像加口罩,加圣诞帽,加红心,加加加
记着好象是有次传说转发就能给头像加圣诞帽,后来又是国庆加国旗,情人节加红心。看似神奇,可怎么做到的呢?
其实原理很简单,跟常见的水印一样,只不过位置比较重要些,要放人脸正确的位置上。
人脸检测对Python来说也是个老话题了,OpenCV很早就已经有成熟的方案。
将人脸的特征总结为以上的图例,然后存在一个haarcascade_frontalface_default.xml文件里,可以从opencv网站上下载
特征图里,只有黑白两色,为了降低寻找特征难度,我们需要转化图像为灰度图
img = cv2.imread('girl.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
然后用detectMultiScale检测出人脸
classifier = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
objects = classifier.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=8, minSize=(8, 8),flags=cv2.CASCADE_SCALE_IMAGE)
这里的参数需要根据具体的图片进行调校,不然可能会找出一些类似人脸的岩石或者头发。
检测出的人脸数据是一个包含坐标和大小的数组,我们用这些数据画一个绿色的圆
for (x, y, w, h) in objects:# cv2.circle(img, (int((x + x + w) / 2), int((y + y + h) / 2)), int(w / 2), (0, 255, 0), 2)
至于口罩,它应该是高度为人脸的一半,宽度也是一半,很容易可以用公式算出位置
for (x, y, w, h) in objects:# cv2.circle(img, (int((x + x + w) / 2), int((y + y + h) / 2)), int(w / 2), (0, 255, 0), 2)cv2.rectangle(img, (x+int(w/4), y+int(h/2)), (x + w-int(w/4), y + h), (255, 255, 255), -1)cv2.imshow("girl", img)cv2.waitKey()
至于带子,你可以自己用rectangle再画上。好了,收工
用Python给你的头像加口罩,加圣诞帽,加红心,加加加相关推荐
- 使用Python+OpenCV+dlib为人脸生成口罩
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...
- Python爬微信好友头像,性别,所在地区
Python爬微信好友头像,性别,所在地区 本文适合新手(有一定基础的小白) 今天没事,用的网页版微信,于是看源码心理作怪,F12打开,研究了一下,结果发现 /斜眼笑/斜眼笑/斜眼笑 再加上,没事干, ...
- 面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩
来源:深度学习与计算机视觉 本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像. 本文使用OpenCV dlib库生成口罩 ...
- python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战
python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战 笔者遇到的问题是这样的, 在做机器学习模型的时候,有的时候会使用相关性分析的方法来进行特征的筛选,去除冗余特征,降 ...
- python command line debug_【已解决】Mac中PyCharm中去加断点实时调试scrapy的项目
折腾: 后,在之前已经用过PyCharm去加上断点实时调试别的python程序的前提下. 下载希望可以用PyCharm也可以加断点,实时调试scrapy的项目. 不过能想到的是,scrapy这种项目, ...
- 用 Python 将 QQ 好友头像生成祝福语
本文我们来看一下如何使用 Python 将 QQ 好友头像拼成"五一快乐"四个字.我们可以将整个实现过程分为两步:爬取 QQ 好友头像.利用好友头像生成文字. 爬取头像 爬取 QQ ...
- Python Day 10 函数(名称空间,作用域,作用域链,加载顺序等; 函数的嵌套 global,nonlocal)...
Python Day 10 函数(名称空间,作用域,作用域链,加载顺序等; 函数的嵌套 global,nonlocal) 名称空间(命名空间): 当程序运行时,代码从上至下一次读取,遇到变量与值, ...
- 用python做头像_如何利用python制作微信好友头像照片墙?
这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...
- python表白代码照片墙-如何利用python制作微信好友头像照片墙?
这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...
- python 生成q版头像_在python中生成花式头像的最简单方法
python 生成q版头像 This article is originally published in my personal blog. 本文最初发表在我的个人博客中 . This is a r ...
最新文章
- java程序能转变为javafx_如何将intellij中的普通Java项目转换为JavaFx项目
- SNF软件开发机器人-子系统-功能-【列表】自由排序-如何配置?
- android https 简书,关于Android http改为https
- python实现维吉尼亚加密法
- python中函数的括号使用
- layui中onchange失效以及form动态渲染失效的问题
- struts2 常用标签的一般用法
- centos rpm 安装 perl_Linux【常用软件安装篇】
- 关于Oracle与MySQL的使用总结
- l2-008 最长对称子串 (25分)_小学数学关于时间认识(时、分、秒)的几点总结
- SAP License:SAP 中的不平
- 高清卫星影像DEM数据免费下载,3款软件4个网站推荐收藏!
- 再谈iOS视频播放器旋转视图开发
- 微信小程序—Flex布局
- 计算机网络与Internet发展历史
- 独立院校转设,高考新生何去何从|转设对新生有哪些影响
- Python获取拥有100万+关注的CSDN公众数据, 发现最关心的竟不是技术,而是…
- Windows中cl命令编译运行C++
- 第二代身份证与第三代身份证有区别吗?
- 常见数据库与数据引擎概念(一)