C# AForge 模式匹配的准确性非常低 - 我做错了什么?

C# AForge pattern matching very low accuracy - what I'm doing wrong?

我需要在图像上查找对象,因此我尝试使用 AForge 库来完成。我从非常简单的图案和图片开始,但识别准确度已经很糟糕了。我正在使用 ExhaustiveTemplateMatching:

ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);
Bitmap img = new Bitmap("C:/img.bmp");
Bitmap pat = new Bitmap("C:/pat.bmp");
TemplateMatch[] matchings = tm.ProcessImage(img, pat);
Debug.WriteLine("Similar: " + matchings[0].Similarity);

这是我的模式:

那是我的图片(只是旋转的图案)。它只有 0,7400396 相似度:

这实际上等于图案与黑色方块 (0,7373355) 的相似度:

我做错了什么,准确率这么低?我该如何改进它?

您希望此函数执行对象识别,但这不是它的设计目的。它实际上只是扫描图像并直接比较像素值以计算相似度。它不寻找关键特征、处理旋转、缩放等...它寻找与您的模板图像完全相同的副本。