wake-up-neo.com

OpenCV-ORB-Deskriptor: TypeError: Falscher Selbsttyp (muss 'Feature2D' oder seine Ableitung sein)

Ich folgte diesem einfachen OpenCV Feature Matching-Beispiel genau:

import cv2

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

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

und haben folgende Fehlermeldung erhalten:

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

Ich verwende OpenCV 3.3.1

8
Wesam

Dies ist ein Kompatibilitätsproblem der OpenCV-Version. Verwenden Sie einfach cv2.ORB_create() anstelle von cv2.ORB().

Der Code sollte folgendermaßen aussehen:

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)
30
Wesam

verwenden Sie dazu cv2.ORB_create ()

2
sameer maurya

Beachten Sie, dass sich die Python-Strukturen "häufig" ändern (in Internet-Geschichtsjahren ohnehin). Es ist eine gute Idee, auf die Version zu achten.

Hier finden Sie den richtigen Link: https://docs.opencv.org/

3.1.1 -> 3.1.0 -> https://docs.opencv.org/3.1.0/ (OpenCV-Python-Lernprogramme -> https://docs.opencv.org/ 3.1.0/d6/d00/tutorial_py_root.html ) ... nicht so hübsch wie diese (alte) readededocs-Site, aber genauer. :)

1
Kaolin Fire