【发布时间】: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_cascade 是CascadeClassifier 类型,但后来它失败了。
【问题讨论】:
-
您应该加载一个 xml,而不是您的图像:
face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml')设置级联分类器,您可以查看文档:docs.opencv.org/trunk/d7/d8b/tutorial_py_face_detection.html 也