【问题标题】:OpenCV: Incorrect type of self (must be 'CascadeClassifier' or its derivative)OpenCV:自我类型不正确(必须是“CascadeClassifier”或其派生词)
【发布时间】:2019-02-16 02:27:34
【问题描述】:

我正在关注 OpenCV 上的 tutorial,但我遇到了一个似乎无法解决的问题。我目前拥有的代码:

import numpy as np
import cv2
import matplotlib.pyplot as plt

img = cv2.imread('/home/Desktop/family.png')

face_cascade = cv2.CascadeClassifier('/home/Desktop/family.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print(face_cascade)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
print (faces)
for (x,y,w,h) in faces:
    cv2.rectangle(img, (x,y), (w+h, y+h), (255,0,0),5)
    roi_gray = gray[y:y:h, x:x+w]
    roi_color = img[y:y:h, x:x+w]

plt.imshow(img)
plt.show()

这个的输出是:

<CascadeClassifier 0x7f5f22e9eb30>

Traceback (most recent call last):
  File "/home/testtt.py", line 10, in <module>
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
TypeError: Incorrect type of self (must be 'CascadeClassifier' or its derivative)

有人看到我做错了吗?显然face_cascadeCascadeClassifier 类型,但后来它失败了。

【问题讨论】:

标签: python opencv


【解决方案1】:

您的错误是您正在加载图像以设置分类器,您应该加载设置分类器以进行面部检测的 xml:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

您可能需要更新您机器上安装 openCV 的路径,您也可以按照 openCV 教程进行操作:https://docs.opencv.org/trunk/d7/d8b/tutorial_py_face_detection.html

【讨论】:

    猜你喜欢
    • 2019-04-04
    • 2018-10-02
    • 2012-07-14
    • 2018-04-19
    • 1970-01-01
    • 2012-09-18
    • 2018-11-21
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多