gpt4 book ai didi

c++ - 使用 OpenCV 进行箭头形状检测

转载 作者:行者123 更新时间:2023-11-28 06:50:32 37 4
gpt4 key购买 nike

我目前正在尝试使用 OpenCV 检测箭头及其方向。我已经完成了工作正常的轮廓检测过程,但我的问题出在形状匹配方面。

我尝试在 OpenCV 中使用 matchShapes 函数,但结果似乎很糟糕。我使用一个简单的模板图像和一个处理过的图像(通常是一张照片,但为了测试我使用了一个简单的图像)

模板图片:

Template Image

处理过的图像:

enter image description here

使用这两个,matchShapes 告诉我左边的正方形看起来更像图像上的箭头的模板。我不知道这是从哪里来的。

matchShapes 对于这种用途来说是一个不好的函数吗?有人告诉我使用 SIFT 算法,但对于这样一个简单的形状,它是不是有点矫枉过正?

谢谢,

最佳答案

我会尝试使用 Image moment找到形状。为此,您必须找到图像区域的不同属性。最好的是想将图像二值化。首先,我会告诉您一些描述形状的技巧,它们不必对图像时刻做任何事情。

首先是形状的周长/周长。计算您需要对形状的所有 contur 元素的长度求和的周长。接下来可以计算形状的面积,您可以计算像素或采用鞋带距离,如 in this post .使用周长和面积,可以计算出 circularity物体/形状。更详细地说,您可以创建一个边界框和它的凸包。最后但并非最不重要的一点是,形状具有重心。这些是您可以构建自己的特征向量的一些属性,但您必须有点创意。或者您可以使用图像时刻。

我不确定 OpenCV 中是否存在图像矩,最好和最稳健的矩是 hu 矩。我在 stackoverflow 中发现了一些解释:Meaning of the seven Hu invariant moments function from OpenCV . Hu momenter 对旋转、平移和缩放具有鲁棒性。非常适合您的问题。

关于c++ - 使用 OpenCV 进行箭头形状检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039454/

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