图像分析:sift / harris / affine / RANSAC

时间:2016-12-15 16:48:47

标签: image-processing transform sift keypoint

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

我正在寻找一个库或函数,它以[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)。

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

E.g。 假设我有两个带关键点的文件(由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实现。我不定期与图像分析有很大关系,在我开始编写自己的实现之前,我假设可能已经存在一个。我在从母语翻译中找到正确的英语术语时遇到问题(看起来条款差别很大),这可能就是为什么我找不到它的原因。

1 个答案:

答案 0 :(得分:0)

我认为openCV是要走的路。

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

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