查看: 2018|回复: 1

使用knnMatch与opencv+python出错

[复制链接]

7

主题

28

帖子

79

积分

注册会员

Rank: 2

积分
79
发表于 2018-10-12 17:48:16 | 显示全部楼层 |阅读模式
我想用Python+OpenCV匹配两张图片。我使用SURF从它们中提取关键点和描述符。现在,我需要匹配这些描述符,出于这个原因,我决定使用Flann Matcher。
  1. flann_params = dict(algorithm = FLANN_INDEX_KDTREE,trees = 4)   
  2. matcher = cv2.FlannBasedMatcher(flann_params, {})
复制代码
但是,当我尝试将knnMatch与desc1, desc2一起使用时,openCV抛出了一个异常。

  1. raw_matches=matcher.knnMatch(np.asarray(desc1),np.asarray(desc2), 2)
复制代码
这个异常如下:
  1. raw_matches=matcher.knnMatch(np.asarray(desc1),np.asarray(desc2), 2) #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
  3. in function buildIndex_
复制代码



回复

使用道具 举报

5

主题

53

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2018-10-12 17:51:36 | 显示全部楼层
本帖最后由 AI的世界 于 2018-10-13 10:19 编辑

可以用np.asarry()函数来解决这个问题:
试试把代码换成这个:

  1. raw_matches=matcher.knnMatch(np.asarray(desc1,np.float32),np.asarray(desc2,np.float32), 2)
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表