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 23 Python
Python语言描述连续子数组的最大和
Jan 04 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
Python使用googletrans报错的解决方法
Sep 25 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
Jan 09 Python
Python读取指定日期邮件的实例
Feb 01 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
call在Python中改进数列的实例讲解
Dec 09 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
php中文件上传的安全问题
2006/10/09 PHP
如何去掉文章里的 html 语法
2006/10/09 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
一些常用的Javascript函数
2006/12/22 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Python+MongoDB自增键值的简单实现
2016/11/04 Python
python正则表达式re之compile函数解析
2017/10/25 Python
详细分析python3的reduce函数
2017/12/05 Python
Python 字符串与数字输出方法
2018/07/16 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
阿里旅行:飞猪
2017/01/05 全球购物
联想德国官网:Lenovo Germany
2018/07/04 全球购物
结婚邀请函范文
2014/01/14 职场文书
经济管理专业求职信
2014/06/09 职场文书
班级文化建设标语
2014/06/23 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
租房协议书范例
2014/10/14 职场文书
小学生节水倡议书
2015/04/29 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js