OpenCV特征点密度

时间:2017-05-06 12:02:32

标签: python-2.7 opencv feature-detection

使用OpenCV SIFT算法我能够获得2幅图像之间的匹配和非匹配特征点。我的解决方案是here
匹配(绿色)和非匹配(红色)特征点的分布如下所示。(我无法显示实际图像。但图像主要包含文本) enter image description here 我想计算图像上匹配和非匹配点的密度函数(即,给定图像上的nXn区域,密度函数应该给出该nXn区域内存在多少匹配点)。我怎样才能做到这一点?
其次,我想计算一个函数,它给出了图像上nXn区域内匹配和非匹配特征点的密度比。
我在Windows 7上使用Python代码并使用最新的OpenCV构建源。

1 个答案:

答案 0 :(得分:0)

要计算匹配非匹配关键点密度,您可以将图像划分为给定大小的子方块并计算每个广场上的两个密度。请参阅以下示例:

local densities on a given square 这将允许离散同一区域的表面上的密度。要计算给定方块的密度,可以执行以下操作:

  • 创建与广场对应的Rect (x,y,width,height)对象。
  • 遍历所有非匹配关键点并检查其中有多少包含(您可以使用Rect。contains (点))。
  • 匹配关键点重复上一步
  • 计算密度(每平方像素的关键点),如我的示例图片所示。

NB 实际上, Rect 仅存在于 OpenCV C ++ 中,因此您可以重新创建 Rect (如果你愿意,它在Python中的包含方法)类(虽然不是必需的)。