gpt4 book ai didi

image-processing - cvMatchShapes 返回不符合逻辑的结果

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:13 25 4
gpt4 key购买 nike

我是计算机视觉领域的新手。

我在我尝试使用的 EmguCV(OpenCV 的 .NET 包装器)中找到了一些代码示例。

目前我正在研究三角形交通标志识别,我正在使用 cvMatchShapes 函数。

函数在理想情况下返回“零”,表示形状相同,数量相同

如果形状相似则接近于零。

问题是,在我的例子中,函数返回的结果不符合逻辑。当函数比较三角形和圆时,返回小于图形的图形,得到比较两个三角形后。

这是我使用的函数和图片:

                double ratio = CvInvoke.cvMatchShapes(modelSignTraffic, trafficSign, Emgu.CV.CvEnum.CONTOURS_MATCH_TYPE.CV_CONTOURS_MATCH_I3, 0);

modelSignTraffic - 是一个模板。在我的例子中是 -

enter image description here

trafficSign - 是一个应该与模板进行比较的形状。

第一个比较形状-

enter image description here

第二个比较形状-

enter image description here

对于第一个形状,我得到比率 0.55,对于第二个形状,我得到比率 0.61。

如果有人能解释为什么我会得到如此不合逻辑的结果以及我该如何解决,我将不胜感激是吗?

提前谢谢你。

最佳答案

我不明白为什么你认为这个结果不符合逻辑。您是否阅读了 CV_CONTOURS_MATCH_I3 的公式? Here it is .我 100% 确定,如果您手动计算此系数,您会得到相同的结果。

顺便说一句,您必须为轮廓(形状)而不是图像计算该系数。所以首先检测形状,然后使用 MatchShapes

更新:

您的解决方案是错误的。您必须先分割红色,然后使用 findContours 检测红色形状。

关于image-processing - cvMatchShapes 返回不符合逻辑的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com