menma_uzumakie
@menma_uzumakie

Почему не работает detectMultiScale python?

Уже давно пытаюсь понять, что же не так.
Конкретный кусок кода:
faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor = 1.1,
    minSize = (30, 30),
    flags = cv2.CASCADE_SCALE_IMAGE
    )

Ошибка:
faces = face_cascade.detectMultiScale(
AttributeError: 'str' object has no attribute 'detectMultiScale'

Прочекал документацию, все делал по гайдам оттуда, дошло до того, что копировал строку, но тщетно
Полная версия кода:
import pyautogui
import cv2
import os
import numpy as np  
import matplotlib.pyplot as plt  
import time 
time.sleep(2)
face_cascade = "C:\mine\haarcascade_frontalface_alt.xml"
im1 = pyautogui.screenshot("screen.jpg", region=(560, 240, 800, 600))
im1.save("C:\mine\screen.jpg")
print('Create')
image = cv2.imread('C:\mine\screen.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor = 1.1,
    minSize = (30, 30),
    flags = cv2.CASCADE_SCALE_IMAGE
    )
cv2.imshow('Output', gray)                                                                                       
cv2.waitKey(0)

Я понимаю, что ошибка кроется в атрибутах, но не могу найти корень и как-то решить.Поэтому заранее спасибо!
  • Вопрос задан
  • 335 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
face_cascade = "C:\mine\haarcascade_frontalface_alt.xml"
...
face_cascade.detectMultiScale(

У тебя face_cascade - это строка. Чего ты ожидаешь-то от неё? Класс строки понятия не имеет ни про какие каскады Хаара.
Сдаётся мне, ты пропустил этап собственно загрузки каскада из указанного файла. А именно, вызов конструктора cv2.CascadeClassifier().
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы