Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何计算图像中的近圆形对象_Matlab_Image Processing_Computer Vision_Geometry_Object Recognition - Fatal编程技术网

Matlab 如何计算图像中的近圆形对象

Matlab 如何计算图像中的近圆形对象,matlab,image-processing,computer-vision,geometry,object-recognition,Matlab,Image Processing,Computer Vision,Geometry,Object Recognition,我有一个类似下图的图像。在这一点上,我需要找到所有的红色圆圈并计算它们。因此,我正在考虑使用MatlabR2011A和图像处理工具包。我怎么可能把它们取出来 我建议您使用一些过滤器来过滤这张图片上的点(正如丹尼斯建议的,过滤那些不够红的点)。然后,您可以实现(磁盘)RANSAC(随机样本一致性)来查找此过滤图片中的磁盘 RANSAC将使用一些调整,但随后将能够非常正确地计算您试图找到的不同对象 在matlab中已经有很多很好的RANSAC实现 我可以给你一个起点: v=double(img)/2

我有一个类似下图的图像。在这一点上,我需要找到所有的红色圆圈并计算它们。因此,我正在考虑使用MatlabR2011A和图像处理工具包。我怎么可能把它们取出来


我建议您使用一些过滤器来过滤这张图片上的点(正如丹尼斯建议的,过滤那些不够红的点)。然后,您可以实现(磁盘)RANSAC(随机样本一致性)来查找此过滤图片中的磁盘

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


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

我可以给你一个起点:

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
v=double(img)/255;

mask=v(:,:,3)+v(:,:,2)-v(:,:,1)您需要更具体一些,我们才能帮助您。你试过什么?你的要求是什么?也许首先过滤所有足够红的像素,然后再模糊一点?你想画所有的圆/部分圆,还是只计算有多少红色水果?例如,如果西红柿是绿色>“n”。掩码
v(:,:,3)+v(:,:,1)+v(:,:,2)>n
是否可以完成任务?我刚试过一张图片,但它不起作用。你能解释清楚你写的第二句话吗。。我认为遮罩应该类似于
v(:,:,1)<0
红色(第一通道)意味着高红色,几乎没有绿色和蓝色。换句话说,红色值大于绿色和蓝色的总和