我是计算机视觉领域的新手。
我在 EmguCV(OpenCV 的 .NET 包装器)中找到了一些我正在尝试使用的代码示例。
目前我正在研究三角形交通标志识别,我正在使用 cvMatchShapes 函数。
该函数在理想情况下返回“零”,表示形状相同且数量为
如果形状相似,则接近于零。
问题是,在我的情况下,函数返回的结果是不合逻辑的。当函数将三角形与圆形进行比较时,它返回小于数字的数字,这是比较两个三角形后得到的。
这是我使用的功能和图像:
double ratio = CvInvoke.cvMatchShapes(modelSignTraffic, trafficSign, Emgu.CV.CvEnum.CONTOURS_MATCH_TYPE.CV_CONTOURS_MATCH_I3, 0);
modelSignTraffic - 是一个模板。就我而言,它是-
trafficSign - 应该与模板进行比较的形状。
首先比较形状-
第二个比较形状-
对于第一个形状,我得到 ratio 0.55 ,对于第二个形状,我得到 ratio 0.61 。
如果有人能解释为什么我会得到如此不合逻辑的结果以及如何解决它,我将不胜感激?
先感谢您。