如何分离重叠blob?

时间:2017-11-02 10:00:04

标签: matlab image-processing computer-vision image-segmentation object-detection

我正在做一个uni项目,我必须检测图片中结构元素的数量。我的目标是为每个元素创建一个blob,以便我可以计算它们。

到目前为止,我做了一点点编码。问题在于物体通常是重叠的(参见左下角部分,其中4个附加元素形成单个斑点)。我该如何绕过这个问题?我真的不知道如何解决这个问题。

% Read the image and convert to L*a*b* color space
I = imread('Crop.jpg');
Ilab = rgb2lab(I);
% Extract a* and b* channels and reshape
ab = double(Ilab(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
% Segmentation usign k-means
nColors = 4;
[cluster_idx, cluster_center] = kmeans(ab,nColors,...
'distance',     'sqEuclidean', ...
'Replicates',   3);
% Show the result
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure(1);
imshow(pixel_labels,[]), title('image labeled by cluster index');

Crop.jpg
Crop.jpg

编辑:我还认为某种物体检测算法可以做到这一点,但元素在方向上也会发生变化而且重叠。我看过这个视频教程Object and feature detection,但我不能在10:58左右读取质心的代码,所以我不能自己尝试一下。你认为这可行吗?再次感谢。

0 个答案:

没有答案