【问题标题】:exact position of match with OpenCV ORB matcher与 OpenCV ORB 匹配器匹配的确切位置
【发布时间】:2017-01-25 23:36:12
【问题描述】:

我在 Python 上使用 OpenCV 构建了一个简单的视觉标记检测算法,第二步使用他们的 ORB 检测器。我使用 ORB 和 BFmatcher,代码是从这个项目中借来的:https://rdmilligan.wordpress.com/2015/03/01/road-sign-detection-using-opencv-orb/ 代码中的检测部分如下所示:

# find the keypoints and descriptors for object
kp_o, des_o = orb.detectAndCompute(obj,None)
if len(kp_o) == 0 or des_o == None: continue

# match descriptors
matches = bf.match(des_r,des_o)

然后检查特征匹配的数量,因此它可以判断模板图像和查询之间是否匹配。问题是:如果是,我如何获得找到的匹配的确切位置和旋转角度?

【问题讨论】:

  • 计算单应性并分解。

标签: python opencv computer-vision template-matching


【解决方案1】:

在这一步已经知道位置。它存储在变量x 和y 中。要找到旋转,请模糊模板和源,然后生成模糊模板的 360 度旋转表示,然后找到与感兴趣区域的差异最小的那个,或者将两个图像都转换为极坐标并尝试移动其中一个获得最佳数学运算的图像(偏移将是您要旋转的角度)。

【讨论】:

  • X 和 Y 变量到底是什么意思?还有,做轮换比较就像再做一次匹配,看起来有些多余。
  • 尝试运行您提供链接的程序,并在运行时检查x 和y 变量的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 2018-02-22
  • 1970-01-01
  • 2021-03-29
  • 1970-01-01
相关资源
最近更新 更多