?私人用途: 刚开始用python做人脸检测,为了以防之后再遇到类似问题,所以在这里记录一下解决方法。但是大都不清楚原因,知道的朋友希望可以告诉我一下。
⭐问题1:
Traceback (most recent call last):
File "C:/Users/74183/Desktop/人脸.py", line 45, in <module>
flags = cv2.cv.CV_HAAR_SCALE_IMAGE
AttributeError: module 'cv2.cv2' has no attribute 'cv'
解决方法:
把【flags = cv2.cv.CV_HAAR_SCALE_IMAGE
】 改为【flags = cv2.CASCADE_SCALE_IMAGE
】
⭐问题2:
Traceback (most recent call last):
File "C:/Users/74183/Desktop/人脸.py", line 45, in <module>
flags = cv2.CASCADE_SCALE_IMAGE
cv2.error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
解决办法:
添加了两条:
pathf =r'C:\Users\74183\Desktop\opencv-master\data\haarcascades_cuda\haarcascade_frontalface_default.xml'
face_cascade.load(pathf)
⭐问题三:
Traceback (most recent call last):
File "C:/Users/74183/Desktop/人脸.py", line 60, in <module>
cv2.circle(image,((x+x+w)/2,(y+y+h)/2),w/2,(0,255,0),2)
TypeError: integer argument expected, got float
并且本来应该输出的图片也没有输出
解决办法:
把【cv2.circle(image,((x+x+w)/2,(y+y+h)/2),w/2,(0,255,0),2)
】改为【cv2.circle(image,((x+x+w)//2,(y+y+h)//2),w//2,(0,255,0),2)
】