我需要在图像上找到对象,所以我正在尝试使用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);


那是我的模式:

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

那是我的图像(只是旋转的图案)。仅获得0,7400396相似度:

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

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

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

我做错了,准确性太低了吗?我该如何改善?

最佳答案

您期望该函数执行对象识别,但这不是其设计目的。它实际上只是扫描图像并直接比较像素值,以计算相似度。它不查找关键特征,手柄旋转,缩放等。它查找模板图像的精确副本。

关于c# - C#AForge模式匹配的准确性非常低-我在做什么错?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38226905/

10-11 04:01