博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MAC SystemError:‘class ‘cv2.CascadeClassifier’‘ returned a result with an error set
阅读量:2052 次
发布时间:2019-04-28

本文共 1876 字,大约阅读时间需要 6 分钟。

利用opencv的CascadeClassifier简单实现人脸识别

环境:MAC+anaconda+opencv3.4

问题:SystemError:‘class ‘cv2.CascadeClassifier’’ returned a result with an error set

在学习opencv-python时,利用笔记本摄像头实现一个视频流人脸识别小程序,其中在调用opencv的haarcascade_frontalface_default.xml时程序报错SystemError,详细信息如下:

import cv2import numpy as npimg = cv2.imread('photo_noisy.jpg')print(img.shape)face_detect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')face_zone = face_detect.detectMultiScale(img,scaleFactor=1.1,minNeighbors=5)print("识别人脸信息:",face_zone)for x,y,w,h in face_zone:    #绘制矩形人脸区域    cv2.rectangle(img,(x,y),(x+w,y+h),color=[0,0,255],thickness=2)	#绘制圆形人脸区域    cv2.circle(img,(x+w//2,y+h//2),radius=w//2,color=[0,255,0],thickness=2)cv2.namedWindow("Easmount-CSDN",0)cv2.imshow("result",img)cv2.waitKey(0)

报错信息如下:

在这里插入图片描述在网页:https://github.com/ihongxx/opencv/tree/master/datamaster/data/haarcascades/haarcascade_frontalface_default.xml中
我们将“haarcascade_frontalface_default.xml”文件已经下载至本地并放在当前的包中。但是出现这个错误。原因是:应该把opencv的资源整合在一起,单独下载xml或者某几个文件,可能会缺少关联文件,而出现错误。所有要把opencv的资源包放在一起。

解决方法:

在我当前的环境中不需要下载xml文件,因为这个文件已经存在,在我们使用anaconda安装opencv时候,已经下载了这个xml文件了。所以只需要找到cv2/data这个目录,就会发现xml存在。那问题是anaconda安装的opencv文件具体在哪儿。我的mac电脑文件具体目录是:/Users/hxx/anaconda3/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_default.xml。找到后修改代码中的文件目录就成功了。

import cv2import numpy as npimg = cv2.imread('photo_noisy.jpg')print(img.shape)face_detect = cv2.CascadeClassifier('/Users/hxx/anaconda3/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_default.xml')face_zone = face_detect.detectMultiScale(img,scaleFactor=1.1,minNeighbors=5)print("识别人脸信息:",face_zone)for x,y,w,h in face_zone:    #绘制矩形人脸区域    cv2.rectangle(img,(x,y),(x+w,y+h),color=[0,0,255],thickness=2)    #绘制圆形人脸区域    cv2.circle(img,(x+w//2,y+h//2),radius=w//2,color=[0,255,0],thickness=2)cv2.namedWindow("Easmount-CSDN",0)cv2.imshow("result",img)cv2.waitKey(0)

转载地址:http://xfulf.baihongyu.com/

你可能感兴趣的文章
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>
APP性能测试工具
查看>>
【Pyton】【小甲鱼】类和对象
查看>>
压力测试工具JMeter入门教程
查看>>
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>
【Loadrunner】【浙江移动项目手写代码】代码备份
查看>>
Python几种并发实现方案的性能比较
查看>>
[Jmeter]jmeter之脚本录制与回放,优化(windows下的jmeter)
查看>>
Jmeter之正则
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>