我正在尝试使用OpenCV 4.0.0和Python 3.6编写使用GeneralizedHoughBallard类的基本示例。我在这里找到了一个关于C ++的例子https://github.com/opencv/opencv/blob/4.0.0/samples/gpu/generalized_hough.cpp但是没有找到Python的例子。
当我尝试创建GeneralizedHoughBallard类的新实例时:
import cv2
alg = cv2.createGeneralizedHoughBallard()
我得到错误:“AttributeError:module'cv2.cv2'没有属性'createGeneralizedHoughBallard”。
我在OpenCV源代码(https://github.com/opencv/opencv/blob/4.0.0/modules/imgproc/include/opencv2/imgproc.hpp)中看到createGeneralizedHoughBallard是用CV_EXPORTS声明的,所以我想它应该可以用于Python。我试图使用在同一个文件(improc.hpp)中声明的另一个类似的函数,例如:cv2.createCLAHE()并且工作正常。
可能是什么问题呢?
显然它被称为GeneralizedHoughBallard
import cv2
print([x for x in dir(cv2) if 'Hough' in x])
print([x for x in dir(cv2) if x.startswith('create')])
['GeneralizedHough',
'GeneralizedHoughBallard',
'GeneralizedHoughGuil',
'HoughCircles',
'HoughLines',
'HoughLinesP',
'HoughLinesPointSet']
['createAffineTransformer',
'createAlignMTB',
'createBackgroundSubtractorKNN',
'createBackgroundSubtractorMOG2',
'createButton',
'createCLAHE',
'createCalibrateDebevec',
'createCalibrateRobertson',
'createChiHistogramCostExtractor',
'createEMDHistogramCostExtractor',
'createEMDL1HistogramCostExtractor',
'createHanningWindow',
'createHausdorffDistanceExtractor',
'createLineSegmentDetector',
'createMergeDebevec',
'createMergeMertens',
'createMergeRobertson',
'createNormHistogramCostExtractor',
'createShapeContextDistanceExtractor',
'createThinPlateSplineShapeTransformer',
'createTonemap',
'createTonemapDrago',
'createTonemapDurand',
'createTonemapMantiuk',
'createTonemapReinhard',
'createTrackbar']