gpt4 book ai didi

python - cv2 3.0.0 cv2.FlannBasedMatcher : flann. knnMatch 抛出 cv2 错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:49 25 4
gpt4 key购买 nike

我想在 Python 中使用基于 flann 的匹配器,如 http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html 中所述

由于我使用的是 OpenCV 3.0.0,因此我不得不调整有关 SIFT 检测器初始化的代码。其余照原样服用

def calculateMatch(self):
# Initiate SIFT detector
sift = cv2.xfeatures2d.SIFT_create()

# find the keypoints and descriptors with SIFT
(kp1, desc1) = sift.detectAndCompute(self.image1,None)
(kp2, desc2) = sift.detectAndCompute(self.image2,None)

# FLANN parameters
FLANN_INDEX_KDTREE = 0

index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
search_params = dict(checks=50) # or pass empty dictionary

flann = cv2.FlannBasedMatcher(index_params,search_params)
matches = flann.knnMatch(desc1,desc2,k=2)

当我运行代码时,我收到以下消息:

cv2.error: cv2.cpp:161: error: (-215) The data should normally be NULL! in function allocate

行内:

matches = flann.knnMatch(desc1,desc2,k=2)        

还有一个评论:如果我使用强力匹配器,一切正常:

bf = cv2.BFMatcher()
matches = bf.knnMatch(desc1, desc2, k=2)

最佳答案

注释掉..\opencv\modules\python\src2中cv2.cpp的第162行

CV_Error(Error::StsAssert, "The data should normally be NULL!")

重新编译和 SIFT 应该可以正常工作。

来源:http://answers.opencv.org/question/76952/regarding-the-error-message-the-data-should-normally-be-null/

关于python - cv2 3.0.0 cv2.FlannBasedMatcher : flann. knnMatch 抛出 cv2 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32931856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com