我的图像看起来像这样:
我有一个任务,我应该围绕他们的开口圈出所有的瓶子。我创建了一个简单的算法并开始工作。我的算法如下:
我根据上面的算法做了,但我有一些图像,我画了一个圆圈。这是因为我选择了该区域,因为瓶口区域和剩余噪音几乎相同。所以我得到了这样的数字。
对图像应用的处理如下所示:
在原始图像上绘制圆圈后,我的最终图像是这样的:
我想我可以处理额外的圆圈,也就是说,因为图像的某些白色部分仍然如下图2所示。这可以使用区域偏差来过滤掉。这是一个好主意还是有其他方法吗?我如何处理玻璃后面的其他瓶子并选择它们?
答案 0 :(得分:5)
您为问题提供的漂亮示例图片!
您可以使用一件事来检测剩余的瓶子(如果有的话)是瓶子放置的明确结构。 瓶子的4×5网格应该相对容易定位,当找到网格时,您可以测试是否在每个预期的瓶子位置检测到瓶子。
对于额外检测到的瓶子,您可以使用
等形状特征如果您能够检测到网格,应该很容易将其定位为异常值(远离预期的瓶位)并相应地丢弃。
祝你的项目好运!
答案 1 :(得分:2)
我使用了与midtiby的第三个建议相同的方法,使用面积和周长之比称为形状因子:
4π*面积/周长^ 2
从轮廓跟踪图像(从阈值图像)检测圆圈,取得巨大成功;
http://www.empix.com/NE%20HELP/functions/glossary/morphometric_param.htm
关于4个未发现的瓶子,如果没有先验知道你正在看什么(这是使用4 x 5网格,然后从每个单元的中心看),这是相当棘手的。我确实认为从轮廓列表中,大多数都是瓶顶(你可以使用形状因子来测试),但是,一个是大矩形。如果您可以找到矩形的末端(从面积方面的最大轮廓),然后从第三个图像中删除它,您将留下部分圆圈。如果你然后轮廓跟踪那些部分圆并使用形状因子/曲线检测等混合可能有帮助?是的,再次祝你好运!