Python3.6.0+opencv3.3.0人脸检测示例
作者:mumu_1233 发布时间:2023-07-23 05:51:07
网上有很多关于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'
解决方法:
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
解决方法:
由于minSize传到detectMultiScale函数的值不是整数导致的导致出现错误,所以这里我们需要强制转换minSize的值为整数: minSize =(w//divisor, h//divisor) 或者 minSize=(int(w/divisor),int(h/divisor))
来源:https://blog.csdn.net/mumu_1233/article/details/77898759
猜你喜欢
- 人们对于那些抄袭模仿的网站有诸多抱怨,但在这篇文章中,却没有冷嘲热讽的意思。但正如他们所说,“模仿是最为忠诚的奉承形式”。“如果你确实需要借
- 本文实例讲述了python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法。分享给大家供大家参考。具体实现方法如下:#!/us
- 引文之前有一篇文章给大家带来了SQL注入的基本知识点以及分类,包含的面比较广但是不深入,于是我准备详细讲讲每一种类型的SQL注入的详细利用方
- 作为互联网产品设计师,在和前端开发人员沟通时你是否常常会听到这样的声音: —— “大姐,给点专业精神好不好,这个表格是自适应的,你
- 目的在各种各样的理论计算中,常常需要绘制各种填充图,绘制完后需要加渐变填充的colorbar。可是有些软件如VMD,colorbar渲染后颜
- 由于opencv读入图片数据类型是uint8类型,直接加减会导致数据溢出现象(1)用Numpy操作可以先将图片数据类型转换成int类型进行计
- 实例如下所示:#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplibimport em
- 先用最简单的三层全连接神经网络,然后添加激活层查看实验结果,最后加上批标准化验证是否有效首先根据已有的模板定义网络结构SimpleNet,命
- 功能输入一个特定格式的时间戳,自动获取前进或者后退多少小时之后的时间附加函数时间戳转换函数def date_time_str_to_long
- 在SQL Server 2008里安装审计,步骤如下:1. 给每个SQL Server 2008具体实例创建一个SQL Server审计2.
- 本文实例讲述了thinkPHP中配置的读取与C方法。分享给大家供大家参考,具体如下:1.项目公共配置Conf/config.php内容如下&
- PDOStatement::errorCodePDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLST
- 本文目标:使用selenium3.0+python3操纵浏览器,打开百度网站。(相当于selenium的hello world)环境基础:p
- 1,jdk配置由于jdk官网的链接不直接支持wget,可以使用下面的方法下载jdk,其中jdk版本为jdk1.8.0_91:wget --n
- 对于需要大量翻译的数据,人工翻译太慢,此时需要使用软件进行批量翻译。1.使用360的翻译def fanyi_word_cn(string):
- 前言这是俺写的第一篇关于python的博客,分享一下我所整合的python中的随机数函数,就当作是自己的一个笔记,也可以供像我一样的pyth
- 前言因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具。每一次新建一个项目的
- 前言pyinstaller能够在Windows、Linux等操作系统下将Python脚本打包成可直接运行程序。使Python脚本
- pygal的安装大家可以参阅:pip和pygal的安装实例教程线图:import pygalline_chart = pygal.Line(
- 1、判断请求头来进行反爬这是很早期的网站进行的反爬方式User-Agent 用户代理referer 请求来自哪里cookie 也可以用来做访