FREAK Descriptor with Opencv Python



我试图使用Opencv在Python中实现FREAK Descriptor。这是我使用的代码:

def surf_freak_detect(image,hessianThreshold):
    surfDetector = cv2.SURF(hessianThreshold)
    surfDetector=cv2.GridAdaptedFeatureDetector(surfDetector,50)
    keypoints = surfDetector.detect(image,None) 
    freakExtractor = cv2.DescriptorExtractor_create('FREAK')
    keypoints,descriptors= freakExtractor.compute(image,keypoints)
    del freakExtractor
    return keypoints,descriptors

这是初始化异常描述符的正确方法吗?通过做一些调试,我发现解释器在计算描述符时需要很长时间,然后最终崩溃。正确检测关键点。奇怪的是,它有时有效有时只是崩溃

如果正确检测到关键点,但程序在生成描述符时崩溃,这是因为描述符区域(围绕关键点)来自图像,并且存在对不存在的位置的内存访问

您必须以某种方式限制异常描述符的操作区域。

OpenCV 3.0 中现在有 FREAK 的 Python 绑定。此处介绍了其配置选项。它似乎缺少如何在 Python 中实际调用它的文档,但您可以在 Python 中像这样使用它:

freakExtractor = cv2.xfeatures2d.FREAK_create()
keypoints,descriptors= freakExtractor.compute(image,keypoints)

(您必须从单独的功能检测器获取关键点,就像您在上面的代码中所做的那样。

相关内容

  • 没有找到相关文章

最新更新