猿问

检测图像上的硬币(和椭圆形)

我目前正在一个项目中,尝试检测位于平面(即桌子)上的几枚硬币。硬币不会重叠,也不会被其他物体隐藏。但是,可能还有其他物体可见,并且照明条件可能并不完美...基本上,请考虑一下自己拍摄的桌子上放着一些硬币。

因此,每个点都应显示为椭圆形。由于我不知道相机的位置,因此椭圆的形状可能会有所不同,从圆形(从顶部看)到平坦的椭圆,具体取决于硬币拍摄的角度。

我的问题是我不确定如何提取硬币并最终将椭圆装在硬币上(我正在寻找做进一步的计算)。

现在,我刚刚通过在OpenCV中设置阈值,使用findContours()获取轮廓线并拟合椭圆来进行了首次尝试。不幸的是,轮廓线很少能给我硬币的形状(反射,光线不好等),而且这种方式也不是首选,因为我不希望用户设置任何阈值。

另一个想法是在该图像上使用椭圆的模板匹配方法,但是由于我既不知道相机的角度也不知道椭圆的大小,所以我认为这不太可行...

所以我想问问是否有人可以告诉我一种适用于我的情况的方法。

有没有一种快速的方法可以从图像中提取三个硬币?计算应该在移动设备上实时进行,并且该方法对于不同的或变化的灯光或背景颜色不应太敏感。

如果有人可以给我任何技巧适合我的提示,那就太好了。


守着星空守着你
浏览 993回答 3
3回答
随时随地看视频慕课网APP
我要回答