-1

我不确定这是否属于适当问题的标准,但我仍然想试一试。

我正在寻找一个库或函数,它以 [number_of_keypoints][feature_0...feature_127] 的文件(或矩阵)的形式采用两个 SIFT 描述符 - 这意味着每个文件有 128 个特征并允许比较图像(我正在使用harris-affine alg. 提取它们:http ://www.robots.ox.ac.uk/~vgg/research/affine/det_eval_files/extract_features2.tar.gz )。

我对一种允许我找到相互最近的邻居的方法感兴趣,该方法将接受邻域中的关键点数量和成功率。

例如,假设我有两个带有关键点的文件(由 SIFT 描述符描述)(image_1.sift,image_2.sift)。我希望接受的方法:邻域中的关键点数,匹配率,其中匹配率在伪代码中表示:

For each keypoint in image_1
Pick 50 nearest neighbours from image_1 -> List<KeyPoints> neighbours_1
   For each keypoint in image_2
   Pick 50 nearest neighbours from image_2 -> List<KeyPoints> neighbours_2
int numberOfMatches = 0;
foreach(neighbour in neighbours_1)
{
    if(neighbour == neighbours_2.Find(neighbour))
        numberOfMatches++;
}

该比率是匹配的数量与考虑的关键点数量。例如 FindMutualKeypoints(image_1, image_2, 50, 0.7)

它可以是 c#、java、python 或 matlab 实现。我与定期图像分析没有太多关系,在我开始编写自己的实现之前,我认为可能已经有一个。我在从母语翻译中找到正确的英语术语时遇到问题(看起来术语完全不同),这可能是我找不到它的原因。

4

1 回答 1

0

我认为openCV是要走的路。

下面是一个例子:link 它使用 SURF 描述符,但你也可以使用 SIFT。

然后您调用 FLANN 匹配器,它还会为您提供有关匹配质量的信息。

于 2016-12-15T16:58:52.353 回答