#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:
в нем говорится, что изображение пустое, поэтому, вероятно, вы неправильно загружаете изображение или импортируете кадр с камеры.
Убедитесь, что ваш путь к файлу каскада указан правильно. Это исправило это для меня.
-
проверьте, правильно ли указано написание
-
если каскад находится внутри папки, укажите это тоже
-
проверьте на наличие опечаток
-
проверьте индекс предоставленной камеры
надеюсь, вы исправите это с уважением