У объекта 'int' нет атрибута '__getitem__' распознаватель opencv - PullRequest
0 голосов
/ 09 апреля 2020

Я использую python 2.7 и opencv3.1.0 для распознавания лиц.

этот код: '' '

model = cv2.createFisherFaceRecognizer()
model.train(images, labels)

# Part 2: Use fisherRecognizer on camera stream
face_cascade = cv2.CascadeClassifier(haar_file)
webcam = cv2.VideoCapture(0)
while(webcam.isOpened()):
    ret, frame = webcam.read()
    if ret:
      gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
      faces = face_cascade.detectMultiScale(gray, 1.3, 5)
      for (x,y,w,h) in faces:
          cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
          face = gray[y:y + h, x:x + w]
          face_resize = cv2.resize(face, (width, height))
          #Try to recognize the face
          prediction = model.predict(face_resize)
          cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 3)
          if prediction[1]<500:
             cv2.putText(frame,'%s - %.0f' % (names[prediction[0]],prediction[1]),(x-10, y-10), cv2.FONT_HERSHEY_PLAIN,1,(0, 255, 0))
          else:
             cv2.putText(frame,'not recognized',(x-10, y-10), cv2.FONT_HERSHEY_PLAIN,1,(0, 255, 0))

      cv2.imshow('OpenCV', frame)
      key = cv2.waitKey(10)
      if key == 27:
         break

' ''

Я получаю ошибку "У объекта int нет атрибута" getitem ' "со строкой: 'если прогноз [1] <500:" в чем проблема ??? </p>

...