2

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

在此处输入图像描述

4

2 回答 2

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-

于 2013-12-24T13:10:26.117 回答
0

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

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

在 matlab 中已经完成了很多好的 RANSAC 实现。

于 2013-12-24T12:35:52.307 回答