我想用Python+OpenCV匹配两张图片。我用SURF从它们中提取了关键点和描述符。现在,我需要匹配这些描述符,因此我决定使用Flann Matcher。
flann_params = dict(algorithm = FLANN_INDEX_KDTREE,trees = 4)
matcher = cv2.FlannBasedMatcher(flann_params, {})
但是当我尝试将knnMatch与描述符(desc1,desc2)一起使用时,openCV抛出一个异常。
raw_matches=matcher.knnMatch(np.asarray(desc1),np.asarray(desc2), 2)
例外情况如下:
raw_matches=matcher.knnMatch(np.asarray(desc1),np.asarray(desc2), 2) #2
cv2.error: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.4.2/modules/flann/src/miniflann.cpp:299: error: (-210) type=6
in function buildIndex_
如何正确使用knnMatch?是虫子吗?
请参阅this question的答案。
以下是相关代码,来自Esteban Angee的答案:
构造参数字典:
执行近邻搜索:
返回匹配的描述符:
我现在不在我的工作站上,所以我恐怕看不到你的代码有什么问题,但是当我遇到同样的问题时,上面的问题解决了我所有的问题。你不必使用
FlannBasedMatcher
,我记得我也有问题。如果没用的话,我明天左右就能找到解决办法。
我用正确的数据类型和函数np.asarray()解决了这个问题
相关问题 更多 >
编程相关推荐