【问题标题】:Use SURF to match images in OpenCV\EmguCV使用 SURF 匹配 OpenCV\EmguCV 中的图像
【发布时间】:2012-12-31 17:12:45
【问题描述】:

我正在处理来自here 的源代码。

好像indices这个变量存储了匹配信息,但是不知道信息是怎么存储的。

例如,你能告诉我找到了多少对匹配的点吗?哪个点匹配哪个点?

【问题讨论】:

  • 请把代码贴在这里。
  • 我的代码与the linked article 完全相同。如果我在这里发布,我认为我的帖子会太长。还是stackoverflow中的一种方式应该在问题中发布代码而不是链接到其他地方?

标签: c# image-processing opencv emgucv surf


【解决方案1】:

看看这条线。

Image<Bgr, Byte> result = Features2DToolbox.DrawMatches(modelImage, modelKeyPoints, observedImage, observedKeyPoints,
        indices, new Bgr(255, 255, 255), new Bgr(255, 255, 255), mask, Features2DToolbox.KeypointDrawType.DEFAULT);

最重要的变量是ma​​sk。这个变量有所有需要的信息。它是数组。如果这个数组上的值等于 1,这意味着我们有一个共同的对。您必须计算在这个数组中出现 1 的次数。

    public int CountHowManyPairsExist( Matrix<byte> mask)
    {
        var matched = mask.ManagedArray;
        var list = matched.OfType<byte>().ToList();
        var count = list.Count(a => a.Equals(1));
        return count;
    }

【讨论】:

    猜你喜欢
    • 2016-03-21
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2012-04-02
    • 2016-06-30
    • 1970-01-01
    • 2012-04-15
    • 2018-06-21
    相关资源
    最近更新 更多