2011-11-02 61 views
2

我想用regionprops处理图像列表,并将结果保存到一个数组或某种列表中。在MATLAB中创建可变长度数组的列表

我的问题是,regionprops返回一个可变大小的结构。它看起来像这样在我的情况下:

stats = regionprops(L,'Centroid'); 

2x1 struct array with fields: 
    Centroid 

结构的大小取决于图像。

如何创建一个对象来保存我所有的结构体?我是否需要使用单元阵列

我试过如下:

mycell = struct2cell(stats); 
centers(i,:) = mycell; 

但只要我的电池阵列具有相同的大小它仅适用。在此情况并非如此,因为检测到的对象的数量在帧间变化为

如何将可变长度的结构体或单元格数组存储在容器中?

我应该用什么,单元阵列的结构?

回答

0

只需将每个结构数组stats置于其自己的单元格内。例如:

>> stats1(3).test = 1 

stats1 = 

1x3 struct array with fields: 
    test 

>> stats2(2).test = 1 

stats2 = 

1x2 struct array with fields: 
    test 

>> [{stats1} {stats2}] 

ans = 

    [1x3 struct] [1x2 struct] 
+0

但是我怎样才能通过算法在循环中完成[{stats1} {stats2}]?我想要做些像'for i = 1:size(images).... allstats {i} = stats'或类似的东西? – zsero

+0

好的,谢谢它实际上适用于'allstats {i} = stats'。 – zsero

+0

你明白了!项目祝你好运! –

相关问题