Я пытаюсь изменить свой код на основе OpenCV, чтобы получить конфиденциальность вместе с каждым обнаруженным объектом из каскадного классификатора. Когда я звоню перегрузка из CascadeClassifier
«s detectMultiScale
метод, который принимает параметры для rejectLevels
а также levelWeights
(и передать правду для outputRejectLevels
), вызов никогда не завершается. Внутренне, призыв к detectMultiScaleNoGrouping
заканчивается быстро, но возвращает миллионы объектов. Когда я не передаю ни один из дополнительных параметров и установить outputRejectLevels
в false тот же самый вызов возвращает 60 объектов, а остальная часть функции работает нормально.
Разве я не должен вызывать эту перегрузку? Или есть другая причина, по которой он возвращает столько значений, что функция никогда не завершается? Как я могу сделать это правильно?
Примечание: я вижу Другой вопрос кажется, что она ссылается на ту же проблему, но она не содержит много информации о самой проблеме и не получила никаких ответов.
Оказывается, это было исправлено в основной ветке OpenCV, но еще не выпущено (по состоянию на 18 апреля 2016 г.). Я подтвердил, что ручное применение исправления и восстановление исправляет проблему.
Соответствующее обсуждение Вот и PR, который должен быть включен для решения проблемы этот. Это изменение в одну строку, поэтому его легко реализовать вручную, пока они не выпустят официальную сборку с включенным изменением.
Других решений пока нет …