Как использовать класс OpenCV GeneralizedHoughTransform с Python? - PullRequest
2 голосов
/ 20 апреля 2019

Я пытаюсь закодировать базовый пример использования класса GeneralizedHoughBallard, используя OpenCV 3.4.1 и Python 3.7.1

Когда я пытаюсь создать новый экземпляр класса GeneralizedHoughBallard:

import cv2
alg = cv2.createGeneralizedHoughBallard()

Я получаю ошибку:

AttributeError: модуль 'cv2.cv2' не имеет атрибута 'createGeneralizedHoughBallard'

Также я попытался показать все методы Хафа:

print([x for x in dir(cv2) if 'Hough' in x])

И результат: ['HoughCircles', 'HoughLines', 'HoughLinesP', 'HoughLinesPointSet']
Так что у меня нет основных функций. Как я могу импортировать это? Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Возможно, он не полностью поддерживается в Python, пожалуйста, проверьте его здесь ссылка на форум opencv

Но каким-то образом это можно сделать, перестроив opencv и работая с CV_EXPORTS_W

0 голосов
/ 20 апреля 2019

Похоже, в OpenCV 3.4.1 его нет. В OpenCV v4.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']

...