我正在尝试使用这个链接中的代码:OpenCV python's API: FlannBasedMatcher
但是,我收到以下错误:
File "C:\Users\User\Desktop\lktracker\lktrack.py", line 22, in match_flann
flann = cv2.flann_Index(desc2, flann_params)
TypeError: features is not a numpy array, neither a scalar下面是我的代码中调用FLANN函数的一部分:
for i in range(rowsInOrigDes):
for j in range(rowsInNextDes):
origDesArr = np.array(origDes[i,:])
nextDesArr = np.array(nextDes[j,:])
origDesArr = [float(x) for x in origDesArr]
nextDesArr = [float(x) for x in nextDesArr]
b = match_flann(origDesArr, nextDesArr, r_threshold = 0.6)
if b:
print b我是否正确地使用了此函数?我也不知道该怎么声明b ..
如果有人能帮上忙,我将不胜感激。
发布于 2013-12-14 15:10:43
问题是features是一个列表,而不是numpy数组。这就是TypeError告诉你的。Flann只接受float32类型的numpy数组。
在看不到完整代码的情况下,给你一个解决方案有点困难,但这很简单。https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html是一个完整的基于Python的匹配教程
请注意,它基于OpenCV 3.0.0开发版本,但它应该很容易适应您选择的版本。
https://stackoverflow.com/questions/19615888
复制相似问题