小圆圈的MATLAB图像处理

San*_*eep 10 matlab image-processing

我的图像看起来像这样:

瓶子

我有一个任务,我应该围绕他们的开口圈出所有的瓶子.我创建了一个简单的算法并开始工作.我的算法如下:

  • 阈值原始图像
  • 做一些形态开放
  • 填空空洞
  • 使用区域道具分离图像的部分,使得仅选择与瓶口相当的区域.
  • 找到每个的质心,并在每个瓶子周围绘制圆圈.

我根据上面的算法做了,但我有一些图像,我画了一个圆圈.这是因为我选择了该区域,因为瓶口区域和剩余噪音几乎相同.所以我得到了这样一个数字.

应用于图像的处理如下所示:

在此输入图像描述

在原始图像上绘制圆圈后,我的最终图像如下:

在此输入图像描述

我想我可以处理额外的圆圈,也就是说,因为图像的某些白色部分仍然如下图2所示.这可以使用区域偏差来过滤掉.这是一个好主意还是有其他方法吗?我如何处理玻璃后面的其他瓶子并选择它们?

mid*_*iby 5

您为问题提供的漂亮示例图片!

您可以使用一件事来检测剩余的瓶子(如果有的话)是瓶子放置的明确结构.瓶子的4×5网格应该相对容易定位,并且当找到网格时,您可以测试在每个预期的瓶子位置是否检测到瓶子.

对于额外检测到的瓶子,您可以使用像这样的形状特征

  • 偏心,
  • 第一个胡时刻
  • 这里详细说明了该区域的周长长度(对于圆圈最小化)的比率

如果您能够检测到网格,则应该很容易将其定位为异常值(远离预期的瓶子位置)并相应地丢弃.

祝你的项目好运!