TypeError:带有 ORB_create() 的 self 类型不正确(必须是“DescriptorMatcher”或其派生词)

TypeError: Incorrect type of self (must be 'DescriptorMatcher' or its derivative) with ORB_create()

提问人:Tutu 提问时间:9/8/2022 最后编辑:Christoph RackwitzTutu 更新时间:9/8/2022 访问量:41

问:

我想使用 cv2 计算单调矩阵。为此,我首先使用,然后按照如何使用具有图像单调的 Orb 检测器中的讨论进行讨论。ORB_create()

但是,在执行此操作时,我收到一个错误matches = bf.match(descs1, descs2)

File "/var/folders/_s/sk0g6rrx3_v_fl0y8zybdb8c0000gn/T/ipykernel_32180/2073887229.py", line 2, in <module>
    matches = bf.match(descs1, descs2)

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

是什么导致了这个问题,我该如何解决?

编辑

这是对我有用的部分:

MIN_MATCH_COUNT = 20
kpts1, descs1 = orb.detectAndCompute(img1,None)
kpts2, descs2 = orb.detectAndCompute(img2,None)

## match descriptors and sort them in the order of their distance
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches = bf.match(descs1, descs2)

IMG1 和 IMG2 是灰度图像和形状为 128x128 的 numpy 数组类型。在我收到上面的错误之后。bf.match

python opencv 同调 orb 重叠匹配

评论

0赞 Klaus D. 9/8/2022
向我们展示一个最小的可重复示例!
0赞 Markus 9/8/2022
你能打印输入变量的类型吗?
0赞 u1234x1234 9/8/2022
你能试试吗?bf = cv2.BFMatcher_create(cv2.NORM_HAMMING, crossCheck=True)

答: 暂无答案