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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
python实现微信自动回复功能
Apr 11 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
python解析多层json操作示例
Dec 30 Python
Python程序控制语句用法实例分析
Jan 14 Python
Django ORM filter() 的运用详解
May 14 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 Python
Python实现粒子群算法的示例
Feb 14 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中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
php简单的上传类分享
2016/05/15 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
vue树形结构获取键值的方法示例
2018/06/21 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
原生js实现购物车功能
2020/09/23 Javascript
Python选课系统开发程序
2016/09/02 Python
Python中取整的几种方法小结
2017/01/06 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
python实现梯度法 python最速下降法
2020/03/24 Python
python pymysql库的常用操作
2020/10/16 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
台湾家适得:Homeget
2019/02/11 全球购物
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
单位工程竣工验收方案
2014/03/16 职场文书
幼儿园安全责任书
2014/04/14 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
Js类的构建与继承案例详解
2021/09/15 Javascript
JavaScript流程控制(循环)
2021/12/06 Javascript