使用OpenCV SIFT算法,我能够获取2张图像之间的匹配和不匹配特征点。我的解决方案是here
匹配(绿色)和不匹配(红色)特征点的分布如下图所示(我无法显示实际图像。但是该图像主要包含文本)
我想为图像上的匹配点和不匹配点计算密度函数(即给定图像上的nXn区域,密度函数应给出该nXn区域内存在多少个匹配点)。我怎样才能做到这一点?
其次,我想计算一个给出图像nXn区域内匹配和不匹配特征点的密度比的函数。我在Windows 7上使用Python代码并从最新的OpenCV源代码构建。
最佳答案
要计算匹配和不匹配关键点的密度,您可以将图像划分为给定大小的子正方形,并在每个正方形上计算两个密度。请参阅以下示例:
这将允许离散化相同区域表面上的密度。要计算给定正方形的密度,可以执行以下操作:
N.B. 实际上,Rect仅存在于 OpenCV C++ 中,因此,您可以根据需要在Python中重新创建Rect(及其包含方法)类(尽管不是必需的)。