這就是我嘗試在我的樹莓派上使用面部識別時發生的情況以下代碼:
#coding=utf-8
import cv2
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_eye.xml')
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
faces = face_cascade.detectMultiScale(frame, 1.3, 5)
img = frame
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x w,y h),(255,0,0),2)
face_area = img[y:y h, x:x w]
eyes = eye_cascade.detectMultiScale(face_area)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(face_area,(ex,ey),(ex ew,ey eh),(0,255,0),1)
cv2.imshow('frame2',img)
if cv2.waitKey(5) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
錯誤資訊:
Traceback (most recent call last):
File "face_recognition1.py", line 4, in <module>
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_frontalface_default.xml')
AttributeError: 'module' object has no attribute 'data'
python版本:3.7.5 opencv版本:3.4.3
uj5u.com熱心網友回復:
不知道你從哪里得到的,但你不需要它們。只需洗掉那些:
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
uj5u.com熱心網友回復:
你的 OpenCV 包太舊了。你說它是v3.4.3。那是從 2018 年開始,所以 3.5 歲。
那時,data命名空間可能還不存在。
更新軟體包。
使用 PyPI 的官方包:(pip3 install --upgrade opencv-python或者pip如果你不在 linux 上)
不要使用 conda 中的“OpenCV”包。充其量他們落后半年(conda-forge)。在最壞的情況下,它們被遺棄或存在潛在危險。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/421081.html
標籤:
上一篇:合并重疊的標簽物件并修改標簽值
