Matlab的图像处理工具箱包含函数bwconncomp,它提供了一个Matlab结构,其中包含(以及其他)对象的数量和每个组件中的像素列表。
我想为骨架的交叉点生成类似的输出[由bwmorph(matrix,'branchpoints')]找到。但是,我不熟悉如何声明一个开放的结构。
我的目的是搜索矩阵并添加有关每个矩阵的信息。由于'branchpoints'给出的某些点可以表示相同的交点,我不知道交叉点的数量,或者需要存储在我的像素id列表中的像素数。
如何在包含给定交叉点的所有像素的单元格中添加像素(bwconncomp输出中的CC.PixelIdcList)
有人可以帮忙吗?
答案 0 :(得分:0)
我不确定你要问的是什么,但这里有两种方法可以在结构中添加字段:
首先,我们可以通过在其中添加值来添加字段。这些字段可以是数组或单元数组,您可以像任何matlab数组一样动态增长它们:
s.p{1} = 5;
s.p{2} = 10;
s.p{3} = 'I''m a string!';
其次,如果你真的需要,你可以使用字符串动态创建字段名称:
for n = 1:3
name = ['p', num2str(n)];
s.(name) = n/10;
end
这导致:
disp(s)
scalar structure containing the fields:
p =
{
[1,1] = 5
[1,2] = 10
[1,3] = I'm a string!
}
p1 = 0.10000
p2 = 0.20000
p3 = 0.30000
答案 1 :(得分:0)
在bwmorph(矩阵,'branchpoints')的矩阵上使用bwconncomp。