OpenCV中文网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 安装 配置
查看: 1469|回复: 2

CascadeClassifier函数的路径问题?

[复制链接]
发表于 2018-4-16 20:11:33 | 显示全部楼层 |阅读模式
安装环境:win7 64位,anaconda + Python3.6.3 opencv3.4.1 (whl版),下载的exe版不会安装,好像只有python 2.7的安装程序。
import CV2 成功,在测试人脸的函数时,死活通不过。百度了很久 都说是full path 问题,可我测试了N遍,也不行,当前目录,绝对目录,双斜杠度测试过,还是不行。
import numpy
import cv2
pathfile = 'D:\\pypro1\\haarcascades\\'
face_cascade = cv2.CascadeClassifier(pathfile + 'haarcascade_frontalface_default.xml')
print(face_cascade.empty())
eye_cascade = cv2.CascadeClassifier("./tensorflow/haarcascade_eye.xml")
# eye_cascade.load("/home/yuhaiyong/tensorflow/haarcascade_eye.xml")
print(eye_cascade.empty())
img = cv2.imread("D:\pypro1\\tensorflow\\tiantian.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('test',img)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
    roi_gray = gray[y:y + h, x:x + w]
    roi_color = img[y:y + h, x:x + w]
    eyes = eye_cascade.detectMultiScale(roi_gray)
    for (ex, ey, ew, eh) in eyes:
        cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)

cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
出错信息如下:
OpenCV(3.4.1) Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage, file D:\Build\OpenCV\opencv-3.4.1\modules\core\src\persistence_c.cpp, line 384
cv2.error: OpenCV(3.4.1) D:\Build\OpenCV\opencv-3.4.1\modules\core\src\persistence_c.cpp:384: error: (-49) Input file is empty in function cvOpenFileStorage


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:/pypro1/tensorflow/check_face.py", line 10, in <module>
    face_cascade = cv2.CascadeClassifier(pathfile + 'haarcascade_frontalface_default.xml')
SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set


换成下面方式可以通过
eye_cascade = cv2.CascadeClassifier("./tensorflow/haarcascade_eye.xml")
可是
print(face_cascade.empty()) 输出为True,后续faces = face_cascade.detectMultiScale(gray, 1.3, 5) 始终无法工作
同样的程序,在Ubuntu下正常。怀疑CascadeClassifier函数没有加载成功。网上大家度没有碰到这种问题吗?求大神,这个问题已经困扰了我两天了。

回复

使用道具 举报

发表于 2018-4-27 09:22:36 | 显示全部楼层
楼主,这问题解决了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-21 23:59:35 | 显示全部楼层
已经解决,和环境可能有关,卸载anaconda后 重新安装python36,用pip 直接安装后就好了。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|blog|OpenCV中文网站 ( 粤ICP备13079875号-2

GMT+8, 2018-9-24 05:41 , Processed in 0.024203 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表