Image 图像分割(MATLAB)

Image 图像分割(MATLAB),image,matlab,image-processing,image-segmentation,Image,Matlab,Image Processing,Image Segmentation,我将如何从背景中分割这幅西红柿图像?我尝试了mathworks的分水岭方法;不幸的是,一些背景与西红柿的强度相同,并且在该背景点和周围较暗的点之间创建了一条边,因此西红柿和一些背景被分割在一起 我试图找到梯度来显示西红柿的外边缘,但并不是所有的边缘都很清晰,所以在西红柿周围的某些部分似乎没有完全连接起来。我的想法是,如果我能把它连接起来并填充整个边界,我就可以通过从原始图像中只提取填充的像素来有效地分割这个西红柿。如果有人能帮忙,我将不胜感激 我包括了原始图像和渐变图像的图片,使用下面的命令完成

我将如何从背景中分割这幅西红柿图像?我尝试了mathworks的分水岭方法;不幸的是,一些背景与西红柿的强度相同,并且在该背景点和周围较暗的点之间创建了一条边,因此西红柿和一些背景被分割在一起

我试图找到梯度来显示西红柿的外边缘,但并不是所有的边缘都很清晰,所以在西红柿周围的某些部分似乎没有完全连接起来。我的想法是,如果我能把它连接起来并填充整个边界,我就可以通过从原始图像中只提取填充的像素来有效地分割这个西红柿。如果有人能帮忙,我将不胜感激

我包括了原始图像和渐变图像的图片,使用下面的命令完成

I = imread('Insert Image');
figure, imshow(I);

hy = fspecial('sobel');

hx = hy';
Iy = imfilter(double(I), hy, 'replicate');
Ix = imfilter(double(I), hx, 'replicate');
gradmag = sqrt(Ix.^2 + Iy.^2);
figure, imshow(gradmag,[]), title('Gradient magnitude (gradmag)')


您可以尝试图形切分方法。 我刚刚尝试了各种分割方法,发现Graphcut分割对于给定的图像效果很好:

链接:


您可能会发现基于与您的问题相关的边缘线索的图像分割。这是一个非常好的结果,但这需要交互式监督。该解决方案不能自动工作,需要研究之前的前景区域和背景区域的自动种子点检测,以便将上述结果修改为自动图形切块分割。