如何将 OpenCV GeneralizedHoughTransform class 与 Python 一起使用?

How to use OpenCV GeneralizedHoughTransform class with Python?

我正在尝试使用 OpenCV 3.4.1 和 Python 3.7.1

编写一个使用 GeneralizedHoughBallard class 的基本示例

当我尝试创建 GeneralizedHoughBallard 的新实例时 class:

import cv2
alg = cv2.createGeneralizedHoughBallard()

我收到错误:

AttributeError: module 'cv2.cv2' has no attribute 'createGeneralizedHoughBallard'

我也尝试展示所有的 Hough 方法:

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

结果:['HoughCircles', 'HoughLines', 'HoughLinesP', 'HoughLinesPointSet']
所以我没有基本的功能。我怎样才能导入它?可能吗?

OpenCV 3.4.1好像没有。在 OpenCV v4.0.X 中称为 GeneralizedHoughBallard。您可能需要更新您的 OpenCV 版本。

python -m pip install --upgrade opencv-python

检查 Hough 方法:

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']

Python可能不完全支持,请在此处查看 opencv forum link

但有可能通过重建 opencv 和处理 CV_EXPORTS_W

来做到这一点