#python #opencv #cv2 #hough-transform
#python #opencv #cv2 #хаф-преобразование
Вопрос:
Я пытаюсь написать базовый пример использования класса GeneralizedHoughBallard с использованием OpenCV 3.4.1 и Python 3.7.1
Когда я пытаюсь создать новый экземпляр класса GeneralizedHoughBallard:
import cv2
alg = cv2.createGeneralizedHoughBallard()
Я получаю сообщение об ошибке:
Ошибка атрибута: модуль ‘cv2.cv2’ не имеет атрибута ‘createGeneralizedHoughBallard’
Также я попытался показать все Хаф-методы:
print([x for x in dir(cv2) if 'Hough' in x])
И результат: ['HoughCircles', 'HoughLines', 'HoughLinesP', 'HoughLinesPointSet']
Итак, у меня нет базовых функций. Как я могу его импортировать? Возможно ли это?
Ответ №1:
Кажется, в OpenCV 3.4.1 его нет. В OpenCV версии 4.0.X он вызывается GeneralizedHoughBallard
. Возможно, вы захотите обновить свою версию OpenCV.
python -m pip install --upgrade opencv-python
Проверка Хаф-методов:
import cv2
print(cv2.__version__)
print([x for x in dir(cv2) if 'Hough' in x])
4.0.0.21
[‘GeneralizedHough’, ‘GeneralizedHoughBallard’, ‘GeneralizedHoughGuil’, ‘HoughCircles’, ‘HoughLines’, ‘HoughLinesP’, ‘HoughLinesPointSet’]
Комментарии:
1. Не могли бы вы помочь найти простой пример использования GeneralizedHoughGuil с python? Может быть, у вас есть один..
2. Вы имеете в виду
GeneralizedHoughBallard
?3. Мне просто нужно сделать простой поиск произвольных объектов, но я читал, что Guil() лучше. Я думаю, мне подойдет любой пример.
4. Взгляните на это и это . Я рекомендую вам открыть отдельный вопрос для этого, поскольку он отличается от вашего исходного сообщения.
Ответ №2:
Возможно, он не полностью поддерживается в Python, пожалуйста, проверьте это здесь ссылка на форум opencv
Но как-то можно это сделать, перестроив opencv и имея дело с CV_EXPORTS_W