如何使用for循环将regionprops的结果存储为矩阵

时间:2017-02-26 20:47:20

标签: matlab for-loop image-processing centroid

for i=1:length(blocks)
    for j=1:length(blocks)
        temp = blocks{i,j};
        s = regionprops(temp, 'Centroid');
        centroids= cat(1,s.Centroid);  
    end
end

当我显示"质心"在这些for循环之外,它只显示最后的迭代值,如何通过逐个附加质心来使质心保持所有迭代结果。

示例:

itration-1: 4,2

itration-2: 6,4

itration-3: 1,3.2

itration-4: 2,2.5

这样

centroids = 
[4 2;
6 4;
1 3.2;
2 2.5];

但是我得到的结果是只有最后一次迭代的值为2,2.5;如何保留所有迭代的所有值

1 个答案:

答案 0 :(得分:0)

您可以将centroids连接到数组的末尾,如下所示:

centroids_arr = []; %Initialize centroids array to empty array.

for i=1:length(blocks)
    for j=1:length(blocks)
        temp = blocks{i,j};
        s = regionprops(temp, 'Centroid');
        centroids= cat(1,s.Centroid);  

        %Concatenate last value of centroids to the end of centroids_arr array (insert as new row to the bottom). 
        centroids_arr = [centroids_arr; centroids];
    end
end