Python3.6.0+opencv3.3.0人脸检测示例


Posted in Python onMay 25, 2018

网上有很多关于Python+opencv人脸检测的例子,并大都附有源程序。但是在实际使用时依然会遇到这样或者那样的问题,在这里给出常见的两种问题及其解决方法。

先给出源代码:(如下)

import cv2
import numpy as np

cv2.namedWindow("test")
cap=cv2.VideoCapture(0)
success,frame=cap.read()

classifier=cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")

while success:
 success,frame=cap.read()
 size=frame.shape[:2]
 image=np.zeros(size,dtype=np.float16)
 image=cv2.cvtColor(frame,cv2.cv.CV_BGR2GRAY)
 cv2.equalizeHist(image,image)
 divisor=8
 h,w=size
 minSize=(w/divisor,h/divisor)
 faceRects=classifier.detectMultiScale(image,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize)
 if len(faceRects)> 0:
 for faceRect in faceRects:
  x,y,w,h=faceRect
  cv2.circle(frame,(x+w/2,y+h/2),min(w/2,h/2),(255,0,0))
  cv2.circle(frame,(x+w/4,y+h/4),min(w/8,h/8),(255,0,0))
  cv2.circle(frame,(x+3*w/4,y+h/4),min(w/8,h/8),(255,0,0))
  cv2.rectangle(frame,(x+3*w/4,y+3*h/4),(x+5*w/8,y+7*h/8),(255,0,0))
 cv2.imshow("test",frame)
 key=cv2.waitKey(10)
 c=chr(key&255)
 if c in ['q','Q',chr(27)]:
 break
 cv2.destroyWindow("test")

运行后出现问题一:

Traceback (most recent call last):
File “E:/facepy/m.py”, line 14, in
image=cv2.cvtColor(frame,cv2.cv.CV_BGR2GRAY)
AttributeError: module ‘cv2.cv2' has no attribute ‘cv'

Python3.6.0+opencv3.3.0人脸检测示例

解决方法:

cv2.cv.CV_BGR2GRAY是Opencv 2.x的变量,在Opencv 3.3中无法识别,所以应该替换成:

image=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

修改完成后,继续运行,又出现问题二:

Traceback (most recent call last):
File “E:/facepy/m.py”, line 19, in
faceRects=classifier.detectMultiScale(image,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize)
TypeError: integer argument expected, got float

Python3.6.0+opencv3.3.0人脸检测示例

解决方法:

由于minSize传到detectMultiScale函数的值不是整数导致的导致出现错误,所以这里我们需要强制转换minSize的值为整数: minSize =(w//divisor, h//divisor)  或者 minSize=(int(w/divisor),int(h/divisor))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
谈谈Python进行验证码识别的一些想法
Jan 25 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python浅复制中对象生存周期实例分析
Apr 02 Python
python pygame实现五子棋小游戏
Oct 26 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
Django REST framework 视图和路由详解
Jul 19 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
Python如何将函数值赋给变量
Apr 28 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
Python基于百度AI实现抓取表情包
Jun 27 Python
Python unittest模块用法实例分析
May 25 #Python
使用Python的Django和layim实现即时通讯的方法
May 25 #Python
matplotlib subplots 调整子图间矩的实例
May 25 #Python
Matplotlib 生成不同大小的subplots实例
May 25 #Python
python opencv3实现人脸识别(windows)
May 25 #Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 #Python
matplotlib savefig 保存图片大小的实例
May 24 #Python
You might like
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
substr()函数中文版
2006/10/09 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
javascript 写的一个简单的timer
2009/07/30 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
js取得url地址参数实例
2013/02/22 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
Json解析的方法小结
2016/06/22 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
Python 12306抢火车票脚本
2018/02/07 Python
在python中使用nohup命令说明
2020/04/16 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
给老婆的婚前保证书
2014/02/01 职场文书
支行行长竞聘演讲稿
2014/05/15 职场文书
先进教师事迹材料
2014/12/16 职场文书
委托公证书样本
2015/01/23 职场文书
教代会开幕词
2015/01/28 职场文书
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL