Ошибка с ошибкой утверждения в cv ::CascadeClassifier :: detectMultiScale в OpenCV

#python #opencv #cv2

#python #opencv #cv2

Вопрос:

Я работаю над своим кодом python с использованием OpenCV

 import cv2
import numpy as np

cap = cv2.VideoCapture(0)

face = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')

while 1:
    ret, frame = cap.read()         ##Read image frame
    frame = cv2.flip(frame,  1)     ##Mirror image frame
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    detect_face = face.detectMultiScale(gray, 1.2, 1)
    for(x, y, z, h) in detect_face:
        cv2.rectangle(frame, (x, y), (x z, y h), (0, 255, 0), 2)
        ROI = gray[x:x z, y:y h]
        length = ROI.shape[0]
        breadth = ROI.shape[1]
        Area = length * breadth
        display = 'Area = '   str(Area)
        if Area > 0:
            cv2.putText(frame, display, (5, 50), font, 2, (255, 255, 0), 2, cv2.LINE_AA)

    for(x, y, z, h) in detect_face:
        cv2.rectangle(frame, (x, y), (x z, y h), (0, 255, 0), 2)
        ROI = gray[x:x z, y:y h]
        length = ROI.shape[0]
        breadth = ROI.shape[1]
        Area = length * breadth
        Distance = 3 * (10 ** (-9)) * (Area ** 2) - 0.001 * Area   108.6
        display = 'Distance = '   str(Distance)
        if Area > 0:
            cv2.putText(frame, display, (5, 50), font, 2, (255, 255, 0), 2, cv2.LINE_AA)
  

это вызвало следующее

penCV(4.4.0) C:UsersappveyorAppDataLocalTemp1pip-req-build-71670pojopencvmodulesobjdetectsrccascadedetect.cpp:1689 : ошибка: (-215: ошибка утверждения) !empty() в функции ‘cv::CascadeClassifier::detectMultiScale’

Я не понимаю, почему это постоянно происходило. Я выполнил все инструкции, приведенные на этом сайте http://art-of-electronics.blogspot.com/2020/06/how-far-you-are-from-your-camera-python.html и я все еще не мог этого понять.

Ответ №1:

в нем говорится, что изображение пустое, поэтому, вероятно, вы неправильно загружаете изображение или импортируете кадр с камеры.

Убедитесь, что ваш путь к файлу каскада указан правильно. Это исправило это для меня.

  • проверьте, правильно ли указано написание

  • если каскад находится внутри папки, укажите это тоже

  • проверьте на наличие опечаток

  • проверьте индекс предоставленной камеры

надеюсь, вы исправите это с уважением