【问题标题】:How to count near circular objects in image [closed]如何计算图像中靠近圆形物体的数量[关闭]
【发布时间】:2013-12-24 05:30:05
【问题描述】:

我有一张类似于下面的图片。在那我需要找到所有的红色圆圈并计算它们。所以,我正在考虑使用带有图像处理工具包的 MATLAB R2011a。我怎么可能提取它们?

【问题讨论】:

  • 您需要更加具体,我们才能为您提供帮助。你试过什么?您有什么要求?
  • 也许先过滤所有足够红的像素,然后再模糊一点?
  • 你想画所有的圆圈/部分圆圈,还是只数那里有多少红色水果?

标签: matlab image-processing computer-vision geometry object-recognition


【解决方案1】:

我可以给你一个起点:

v=double(img)/255;
mask = v(:,:,3)+v(:,:,2)-v(:,:,1)<0;
mask = imopen(mask,strel('square',3));
imagesc(min(1,v+cat(3,mask*0,mask*1,mask*0)));axis image

叠加图如下:

在面罩上使用 RANSAC(由 AdrienNK 建议),您将获得西红柿的位置(和数量);-)

-O-

【讨论】:

  • 例如,如果西红柿是绿色的 > "n"。面具v(:,:,3) + v(:,:,1) + v(:,:,2) &gt; n 能完成这项工作吗?我刚刚尝试了一张图片,但它不起作用
  • 你能把你写的第二个语句解释清楚吗..我认为掩码应该类似于v(:,:,1) &lt; 0
  • 具有红色(第一个通道)意味着高红色,​​几乎没有绿色和蓝色。换句话说,红色值大于绿色和蓝色的组合
【解决方案2】:

我建议您对这张图片上的点进行一些过滤(如丹尼斯建议的那样,过滤不够红的点)。然后你可以实现一个(磁盘)RANSAC(随机抽样共识)来在这个过滤的图片中找到磁盘。

RANSAC 将使用一些调整,但随后将能够非常正确地计算您尝试查找的不同对象。

在 matlab 中已经有很多很好的 RANSAC 实现。

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多