图片人脸检测——OpenCV版(二)
图片人脸检测
人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看.
功能展示
识别一种图上的所有人的脸,并且标出人脸的位置,画出人眼以及嘴的位置,展示效果图如下:
多张脸识别效果图:
技术实现思路
图片转换成灰色(去除色彩干扰,让图片识别更准确)
图片上画矩形
使用训练分类器查找人脸
具体实现代码
图片转换成灰色
使用OpenCV的cvtColor()转换图片颜色,代码如下:
import cv2filepath = "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 cv2filepath = "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 cv2filepath = "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()
往期目录
视频人脸检测——Dlib版(六)
OpenCV添加中文(五)
图片人脸检测——Dlib版(四)
视频人脸检测——OpenCV版(三)
图片人脸检测——OpenCV版(二)
OpenCV环境搭建(一)
更多更新,欢迎访问我的github:https://github.com/vipstone/faceai
图片人脸检测——OpenCV版(二)相关推荐
- 图片人脸检测——Dlib版(四)
上几篇给大家讲了OpenCV的图片人脸检测,而本文给大家带来的是比OpenCV更加精准的图片人脸检测Dlib库. 往期目录 视频人脸检测--Dlib版(六) OpenCV添加中文(五) 图片人脸检测- ...
- 视频人脸检测——OpenCV版(三)
视频人脸检测是图片人脸检测的高级版本,图片检测详情点击查看我的上一篇<图片人脸检测--OpenCV版(二)> 实现思路: 调用电脑的摄像头,把摄像的信息逐帧分解成图片,基于图片检测标识出人 ...
- dlib php,图片人脸检测——Dlib版(四)
上几篇给大家讲了OpenCV的图片人脸检测,而本文给大家带来的是比OpenCV更加精准的图片人脸检测Dlib库. 往期目录 dlib与OpenCV对比 识别精准度:Dlib >= OpenCV ...
- 视频人脸检测——Dlib版(六)
往期目录 视频人脸检测--Dlib版(六) OpenCV添加中文(五) 图片人脸检测--Dlib版(四) 视频人脸检测--OpenCV版(三) 图片人脸检测--OpenCV版(二) OpenCV环境搭 ...
- python读取视频流做人脸识别_python实现图片,视频人脸识别(opencv版)
图片人脸识别 import cv2 filepath = "img/xingye-1.png" img = cv2.imread(filepath) # 读取图片 gray = c ...
- JavaCV实现图片人脸检测
之前写的文章 Java + OpenCV 实现图片人脸检测 很多同学反馈说要搭建环境很麻烦, 加上我换了电脑, 本身自己的opencv环境也丢了, 搭建环境的痛实在不想经历第二遍, 所以还是研究了以 ...
- 基于Opencv的图片人脸检测
本篇内容介绍如何使用opencv,scipy,tensorflow来实现计算机人脸检测.(用一点也是用 =.=) 先声明一下,本篇内容是在图片中的人脸检测, 调动计算机摄像头的人脸识别链接: 链接:h ...
- 人脸检测(十二)--DDFD算法
转自:blog.csdn.net/qq_14845119/article/details/52564519 DDFD(Deep Dense Face Detector)是一种基于AlexNet进行微调 ...
- 25 行 Python 代码实现人脸检测——OpenCV 技术教程
安装 OpenCV 首选,你需要找到对应你的操作系统的正确设置文件. 我发现,安装 OpenCV 是最难的一个环节.如果你遇到奇怪的.无法解释的错误,有可能是库崩溃了.32 与 64 比特的兼容问题等 ...
最新文章
- 【RecyclerView】 十、RecyclerView 数据更新 ( 增加单条数据 | 批量增加数据 )
- python字符串的方法和列表的方法_python 字符串方法及列表,元组,字典(一)
- mysql主从是同步还是异步_mysql主从同步异步场景的分析
- elementui 上传七牛_element ui使用上传组件上传文件到七牛(qiniu-js)
- Android 系统(220)---如何快速对系统重启问题进行归类
- 无刷电机反电动势过零检测
- create-react-app 后需要npm run eject
- gulp.js 4.0试用
- java 封装优化工具,Java开源封装工具
- 原创度检测工具-文章原创度在线检测免费
- 金田变频器说明书_金田BH386系列变频器使用手册.pdf
- 浅谈利用强化学习A3C玩转超级玛丽奥
- matplotlib画图并设置图片大小
- 想把语音转成文字,就这样做
- 网络安全之入侵检测系统
- 算法——暴力之美(volence‘s beautify of algorithm)
- (41.1)【JWT-KID漏洞】KID之目录遍历、命令注入、SQL注入
- dismiss all popup view
- matplotlib.mlab库的重要函数
- Linux和Windows误删文件恢复办法
热门文章
- Pytorch RuntimeERROR: Given groups=1 weights of size [256,64,1,1] expected input[1,16,256,256] to
- 缓存雪崩、击穿、穿透解决方案
- UVA1583 Digit Generator
- 面向对象、继承、抽象方法重载知识点整理
- hdu 5139 数据的离线处理
- 利用python进行数据分析D2——ch03IPython
- JavaScript基础之Number对象和Math对象
- unity, undo
- pyotherside 试用
- 使用bash编写Linux shell脚本--复合命令