【问题标题】:OpenCV ORB descriptor: TypeError: Incorrect type of self (must be 'Feature2D' or its derivative)OpenCV ORB 描述符:TypeError:不正确的自我类型(必须是“Feature2D”或其派生词)
【发布时间】:2018-10-02 22:22:56
【问题描述】:

我完全遵循了这个简单的OpenCV Feature Matching example

import cv2

img = cv2.imread('box.png',0) # queryImage
orb = cv2.ORB()               # Initiate ORB detector

# find the keypoints and descriptors with ORB
kp1, des1 = orb.detectAndCompute(img, None)

并且一直收到以下错误:

TypeError: Incorrect type of self (must be 'Feature2D' or its derivative)

我正在使用 OpenCV 3.3.1

【问题讨论】:

    标签: python opencv image-processing computer-vision opencv3.0


    【解决方案1】:

    这是一个 OpenCV 版本兼容性问题。只需使用cv2.ORB_create() 而不是cv2.ORB()

    代码应如下所示:

    import cv2
    
    img = cv2.imread('box.png',0) # queryImage
    orb = cv2.ORB_create()        # Initiate SIFT detector
    
    # find the keypoints and descriptors with SIFT
    kp1, des1 = orb.detectAndCompute(img, None)
    

    【讨论】:

      【解决方案2】:

      请注意,python 结构“经常”更改(无论如何在互联网历史上)。注意版本是个好主意。

      去这里找到正确的链接:https://docs.opencv.org/

      3.1.1 --> 3.1.0 --> https://docs.opencv.org/3.1.0/ ( OpenCV-Python 教程 --> https://docs.opencv.org/3.1.0/d6/d00/tutorial_py_root.html ) ... 没有那个(旧的)readthedocs 网站漂亮,但更准确。 :)

      【讨论】:

        【解决方案3】:

        cv2.ORB_create() 会做我认为的工作

        【讨论】:

        • 如果您要复制答案,请格式化您的代码。
        猜你喜欢
        • 2019-04-04
        • 2019-02-16
        • 2018-06-28
        • 2012-07-18
        • 2014-08-16
        • 2016-05-03
        • 2012-07-14
        • 2014-07-15
        • 2022-01-15
        相关资源
        最近更新 更多