2017-05-06 135 views
0

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

+0

你可以发布匹配和不匹配的特征点的图像,以便更好地了解它们的分布吗? –

+0

@ElouarnLaine检查图像 –

+0

我的回答对你有帮助吗?如果不是,你能解释一下为什么我可以改进我的答案。谢谢。 –

回答

0

要计算密度匹配不匹配的关键点您可以将您的图像在一个给定大小的子广场和计算每平方两个密度。看下面的例子:

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

  • 创建对应于所述一个正方形Rect(X,Y,宽度,高度)对象。
  • 遍历所有不匹配的关键点,并检查其中有多少是在矩形包含(你可以使用矩形。contains(点))。
  • 匹配关键点重复上述步骤。
  • 计算密度(每平方像素的关键点),如我的示例图片所示。

N.B.其实,矩形只存在于OpenCV的C++,这样你就可以重新创建一个矩形(及其包含法)在Python类,如果你想(尽管这样不是必需的)。