#python
Вопрос:
код приведен ниже
import cv2 cam = cv2.VideoCapture(0, cv2.CAP_DSHOW) cam.set(3, 640) cam.set(4, 480) detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') face_id = input("Enter a Numeric user ID here: ") print("Taking samples, look at camera ....... ") count = 0 while True: ret, img = cam.read() converted_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = detector.detectMultiScale(converted_image, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img, (x,y), (x w,y h), (255,0,0), 2) count = 1 cv2.imwrite("samples/face." str(face_id) '.' str(count) ".jpg", converted_image[y:y h,x:x w]) cv2.imshow('image', img) k = cv2.waitKey(100) amp; 0xff if k == 27: break elif count gt;= 10: break print("Samples taken now closing the program....") cam.release() cv2.destroyAllWindows()
ошибка в том, что
(lt;class 'cv2.error'gt;, error("OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-sn_xpupm\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'n"), lt;traceback object at 0x00000218F0515AC0gt;)
или
Traceback (most recent call last): File "C:UsersAdminDesktopAbhi_workspaceJarvisGUIsimple generator.py", line 22, in lt;modulegt; faces = detector.detectMultiScale(converted_image, 1.3, 5) cv2.error: OpenCV(4.5.3) C:UsersrunneradminAppDataLocalTemppip-req-build-sn_xpupmopencvmodulesobjdetectsrccascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
Комментарии:
1. Трудно сказать, может быть, ваша камера недоступна или недоступна для первых нескольких кадров вашей программы. Попробуйте обернуть функцию в
try: ... except: ...
блок2. Разбейте проблему на более простые для диагностики этапы, например 1. работает ли распознавание лиц с одним изображением? 2. Правильно ли ему подают кадры, 3) и т. Д.