图片人脸检测——OpenCV版(二)
图片人脸检测
人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看.
往期目录
视频人脸检测——Dlib版(六)
OpenCV添加中文(五)
图片人脸检测——Dlib版(四)
视频人脸检测——OpenCV版(三)
图片人脸检测——OpenCV版(二)
OpenCV环境搭建(一)
更多更新,欢迎访问我的github:https://github.com/vipstone/faceai
功能展示
识别一种图上的所有人的脸,并且标出人脸的位置,画出人眼以及嘴的位置,展示效果图如下:
多张脸识别效果图:
技术实现思路
图片转换成灰色(去除色彩干扰,让图片识别更准确)
图片上画矩形
使用训练分类器查找人脸
具体实现代码
图片转换成灰色
使用OpenCV的cvtColor()转换图片颜色,代码如下:
import cv2 filepath = "img/xingye-1.jpg" img = cv2.imread(filepath) # 转换灰色 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 显示图像 cv2.imshow("Image", gray) cv2.waitKey(0) cv2.destroyAllWindows()
图片上画矩形
使用OpenCV的rectangle()绘制矩形,代码如下:
import cv2 filepath = "img/xingye-1.jpg" img = cv2.imread(filepath) # 读取图片 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色 x = y = 10 # 坐标 w = 100 # 矩形大小(宽、高) color = (0, 0, 255) # 定义绘制颜色 cv2.rectangle(img, (x, y), (x + w, y + w), color, 1) # 绘制矩形 cv2.imshow("Image", img) # 显示图像 cv2.waitKey(0) cv2.destroyAllWindows() # 释放所有的窗体资源
使用训练分类器查找人脸
在使用OpenCV的人脸检测之前,需要一个人脸训练模型,格式是xml的,我们这里使用OpenCV提供好的人脸分类模型xml,下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 可全部下载到本地,本人存放的路径是:C:\Python36\Lib\site-packages\opencv-master\data\haarcascades.
完整实现代码:
import cv2 filepath = "img/xingye-1.jpg" img = cv2.imread(filepath) # 读取图片 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色 # OpenCV人脸识别分类器 classifier = cv2.CascadeClassifier( "C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml" ) color = (0, 255, 0) # 定义绘制颜色 # 调用识别人脸 faceRects = classifier.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) if len(faceRects): # 大于0则检测到人脸 for faceRect in faceRects: # 单独框出每一张人脸 x, y, w, h = faceRect # 框出人脸 cv2.rectangle(img, (x, y), (x + h, y + w), color, 2) # 左眼 cv2.circle(img, (x + w // 4, y + h // 4 + 30), min(w // 8, h // 8), color) #右眼 cv2.circle(img, (x + 3 * w // 4, y + h // 4 + 30), min(w // 8, h // 8), color) #嘴巴 cv2.rectangle(img, (x + 3 * w // 8, y + 3 * h // 4), (x + 5 * w // 8, y + 7 * h // 8), color) cv2.imshow("image", img) # 显示图像 c = cv2.waitKey(10) cv2.waitKey(0) cv2.destroyAllWindows()
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OpenCV环境搭建(一)
此环境搭建是OpenCV的python(一下简称py)开发环境搭建,建立在py3的环境和语法上实现的。 windows系统搭建 系统环境:windows 10 + python 3.6 + OpenCV 3.4.1 一、安装python python的安装之前在python自学笔记的项目中描述了,在这不做重复说明,有需要的朋友,点击查看:python环境安装 二、安装numpy模块 根据上文提示,现在我们已经正确安装了python和pip(安装和管理python包的工具),在正式安装OpenCV之前,首先我们要安装numpy模块。 numpy:是一个定义了数值数组和矩阵类型和它们的基本运算的语言扩展,OpenCV引用了numpy模块,所以安装OpenCV之前必须安装numpy。 本文安装python模块使用的是.whl文件安装的。 whl文件是什么? whl是一个python的压缩包,其中包含了py文件以及经过编译的pyd文件。 whl安装命令 pip install 存放路径\xxx.whl 回到主题,我们是要安装numpy模块的。 首先去网站下载对应的numpy版本,下载地址:ht...
- 下一篇
那么多的编程语言该学习哪一个?
点击关注异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 最近有同学想转行学习计算机,问我学习什么好。我就告诉他我学的是iOS开发,你也可以试试。目前iOS培训机构到处都是。除了iOS,还有android,html5,python,大数据,全站工程师,区块链等等。五花八门的培训机构,开设着各种各样的培训课程。 很多从事着其他行业工作的人,纷纷转行学起了计算机,短短几个月的培训,就能找到一份不错的工作。身边就有这样的例子,毕业后去培训了几个月大数据知识,来上海找了份不错的工作,可以说是赶上了好时机。如果大家都去参加培训,大于市场的需求量,就有些人注定要找不到工作。 对于那些外行人,想要学习计算机的,建议找一个品牌好的培训机构,选择一个自己喜欢的课程,要相信那些找不到工作的人群中不会有自己。 对于已经从事计算机方面工作的人,想要学习新技术,可以通过培训,也可以自学。毕竟有一定的基础,很多知识都是大同小异的。比如java就和C++很像,掌握了C++再学java就很容易,语言学习的多了,很多语法就容易混淆,反正编译工具都会有提示的。 工作了这么久,渐渐觉得编程语言并不是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器