Почему я получаю ошибку в openCV :: CascadeClassifier :: detectMultiScale? - PullRequest
0 голосов
/ 07 августа 2020

, так что в основном я пишу программу на python с использованием openCV, которая может обнаруживать автомобили, а затем превращает изображение в полутоновое изображение. Однако при запуске кода отображается ошибка.

Это ошибка

: строка 19 в cars = car_tracker.detectMultiScale (black_n_white) cv2.error: OpenCV (4.2.0) C: \ projects \ opencv-python \ opencv \ modules \ objdetect \ src \ cascadedetect. cpp: 1689: ошибка: (-215: утверждение не выполнено)! empty () в функции 'cv :: CascadeClassifier :: detectMultiScale'

Вот мой код:

import cv2

#These are our images
img_file ='car.jpg'

#This will be the result of the algorithm after it is trained
classifier_file = 'car_detector.xml'

#create opencv image
img = cv2.imread(img_file)

#create a car classifier
car_tracker = cv2.CascadeClassifier(classifier_file)

#convert it to black and white first cuz it makes it 3x faster for the algorithm
black_n_white = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#detect cars
cars = car_tracker.detectMultiScale(black_n_white)

#display the image with car spotted
cv2.imshow('car detector', black_n_white)

#this makes it wait 
cv2.waitKey()

1 Ответ

0 голосов
/ 07 августа 2020

Выдается ошибка, поскольку OpenCV не может найти ваш xml файл, возможно, вы указали неправильный путь. Хороший способ проверить, правильно ли загружен ваш файл, - сначала инициализировать классификатор (clf = cv2.CascadeClassifier()), а затем проверить, возвращает ли clf.load(filename) True.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...