Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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
Image MATLAB中的若干组号_Image_Matlab_Image Processing_Computer Vision_Connected Components - Fatal编程技术网

Image MATLAB中的若干组号

Image MATLAB中的若干组号,image,matlab,image-processing,computer-vision,connected-components,Image,Matlab,Image Processing,Computer Vision,Connected Components,我没有使用Matlab中的计算机视觉工具箱,而是在图像中查找连接的组件 在给定图像的第一次扫描中,我为每个像素指定了标签。我还创建了一个表,其中列出了相互连接的组件列表。该表如下所示: 1 5 1 5 2 4 3 5 8 5 2 6 此表表示标签为1和5的所有像素都已连接,标签为2和4的像素已连接,标签为3和5的像素已连接,依此类推。另外,由于1和5是连接的,3和5也是连接的,这意味着1和3也是连接的 我想找到一种方法将所有这些组件组合在一起。有没有可能的办法?? 或者

我没有使用Matlab中的计算机视觉工具箱,而是在图像中查找连接的组件

在给定图像的第一次扫描中,我为每个像素指定了标签。我还创建了一个表,其中列出了相互连接的组件列表。该表如下所示:

1   5
1   5
2   4
3   5
8   5
2   6
此表表示标签为1和5的所有像素都已连接,标签为2和4的像素已连接,标签为3和5的像素已连接,依此类推。另外,由于1和5是连接的,3和5也是连接的,这意味着1和3也是连接的

我想找到一种方法将所有这些组件组合在一起。有没有可能的办法??
或者,通过某种方式,每个连接的像素都会得到一个与最小值标签相等的标签,即如果连接了4、7和12个像素,则所有带有标签4、7和12的像素都会得到一个值为4的标签。

您似乎想计算图形的连接组件。这可以很容易地在MATLAB中完成,无需任何额外的工具箱

e = [1   5; ...
     1   5; ...
     2   4; ...
     3   5; ...
     8   5; ...
     2   6];
% MATLAB doesn't support repeated edges so remove them
e = unique(sort(e,2),'rows');
% create a graph
G = graph(e(:,1),e(:,2));
% plot the graph (optional)
plot(G);
% find connected components
bins = conncomp(G);
% get the indicies of nodes in each cluster
cluster = arrayfun(@(v)find(bins==v),1:max(bins),'UniformOutput',false);

结果

这不是一个简单的例子吗?
>> cluster{1}
ans = 1     3     5     8
>> cluster{2}
ans = 2     4     6
>> cluster{3}
ans = 7