c# - 如何从特征提取中找到匹配的数量?

标签 c# opencv emgucv feature-extraction sift

我希望能够从两个图像中获得特征匹配的数量。不幸的是,我似乎无法找到如何做到这一点。我使用可以从 NuGet 下载的最新 EMGU 包 我使用的代码来自:Feature Matching sample ,但问题是他们用来计算值的方法会出错。它在这个代码块上给出了一个错误:

// Calculate score based on matches size
// ---------------------------------------------->
score = 0;
for (int i = 0; i < matches.Size; i++)
{
    if (mask.GetData(i)[0] == 0) continue;
    foreach (var e in matches[i].ToArray())
        ++score;
}

具体在 mask.GetDAta(i)[0]然后它声明int无法转换为 bool ,但老实说,我不知道该填写什么作为参数。

我见过的另一种解决方案是使用非零计数,但这似乎不正确。此外,这里提到的EmguCV SURF - Determine matched pairs of points也不起作用。

任何帮助是极大的赞赏。

最佳答案

我认为这是他们示例中的错误,请尝试以下方法:

if ((byte)mask.GetData().GetValue(i, 0) == 0) continue;

关于c# - 如何从特征提取中找到匹配的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58509658/

相关文章:

c# - 人脸检测EmguCV

opencv - 直方图 bin 总数不等于图像像素大小

c# - 面向对象编程中的装饰器模式

c# - 如何获取列表中的所有 Windows 窗体元素

c++ - 什么是 grey.cols-1 和 grey.rows -1 以及两个 for 循环

c# - 将位图转换为 OpenCvSharp IplImage

c++ - 无法找到/打开输入级联

c# - EmguCV MatchTemplate 获取所有匹配项

c# - 带有可以转售的 API 的 VOIP 服务?

c# - 自定义类中的依赖注入(inject) - .NET Core