我有一个类似于下面的图像。在那里我需要找到所有红色圆圈并计算它们。所以,我正在考虑使用MATLAB R2011a和Image Processing Toolkit。我怎么可能提取它们?
答案 0 :(得分: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 -
答案 1 :(得分:0)
我建议你使用一些过滤这张照片上的点(正如丹尼斯建议的那样,过滤掉那些不够红的照片)。然后,您可以实现(磁盘)RANSAC(RANdom SAmple Consensus)来查找此过滤图片中的磁盘。
RANSAC将使用一些调整,但随后将能够非常正确地计算您要查找的不同对象。
在matlab中已经有很多很好的RANSAC实现。