Ошибка классификатора: (-215)! Empty () в функции detectMultiScale в OpenCV - PullRequest
1 голос
/ 18 июня 2020

Привет, я пытаюсь обнаружить некоторые лицензионные пластины с помощью классификатора из cv2. (на Windows)

Я установил open-cv через pip install в venv

(путь: C: \ Users \ ramif \ Desktop \ StraßenverkehrProjekt \ venv \ Lib \ site -packages \ cv2)

import cv2
import matplotlib.pyplot as plt


x = cv2.imread("P1010003.jpg")
gray = cv2.cvtColor(x, cv2.COLOR_BGR2GRAY)
classifier = cv2.CascadeClassifier('venv\Lib\site-packages\cv2\data\haarcascade_russian_plate_number.xml')
platings = classifier.detectMultiScale(gray, minNeighbors = 10)

c = x.copy()
for plating in platings:
    x, y, w, h = plating
    cv2.rectangle(c, (x, y), (x+w, y+h), (55, 175, 212), 10)
z = cv2.cvtColor(c, cv2.COLOR_BGR2RGB)
print(plating)
plt.imshow(z)
plt.show()

Этот код работает нормально, но когда я пытаюсь прочитать несколько изображений с помощью for-l oop, он больше не работает. Как я могу прочитать несколько изображений с помощью функции detectMultiscale?

Вот пример кода, как я пытался его прочитать: (Failed Code)

import os
import cv2
import matplotlib.pyplot as plt



file = os.path.join(os.path.dirname(__file__), "Bilder")
os.chdir(file)
img = []
for i in os.listdir(file):
    x = cv2.imread(i)
    img.append(x)
    break

for j in img:
    gray = cv2.cvtColor(j, cv2.COLOR_BGR2GRAY)
    classifier = cv2.CascadeClassifier('venv\Lib\site-packages\cv2\data\haarcascade_russian_plate_number.xml')
    platings = classifier.detectMultiScale(gray)
    print(platings)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...