c# - 使用 SURF 匹配 OpenCV\EmguCV 中的图像

我正在研究 here 的源代码.

看来indices变量存储匹配信息,但我不知道信息是如何存储的。

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

最佳答案

看看这条线。

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);

最重要的变量是面具 .这个变量有所有需要的信息。它是数组。如果这个数组上的值等于 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;
    }

https://stackoverflow.com/questions/14374423/

相关文章:

opencv - OpenCV Codebook方法-背景模型

c++ - 负 RGB 值

image-processing - 通过 find_contour 获取每个标志的 1 个轮廓并在

image-processing - 使用 openCV 检测图案区域

opencv - "cache"cv Warp透视图

opencv - 最大颜色数和最大深度

opencv - 使用Filestrage在OpenCV中保存和读取Mat向量的向量

opencv - 在OpenCV中编译

python - opencv-python:不是一个numpy数组

opencv - Eclipse安装opencv 2.4.3库时出错