Image MatLab:向单元格添加循环中不断增加的数据值
我有一个循环,它运行在一组对象上(来自图像)。这些对象用于计算图片中对象的面积、周长、圆度和圆度。该程序拍摄一批图片,检测对象并计算这些指标。我的问题是: 我无法将数据保存为矩阵,因为每张图片不包含一定数量的颗粒,即包含面积、周长等的向量不具有相同的长度。所以现在我正在尝试细胞。但是我不能让它工作 这是我的密码:Image MatLab:向单元格添加循环中不断增加的数据值,image,matlab,cell,Image,Matlab,Cell,我有一个循环,它运行在一组对象上(来自图像)。这些对象用于计算图片中对象的面积、周长、圆度和圆度。该程序拍摄一批图片,检测对象并计算这些指标。我的问题是: 我无法将数据保存为矩阵,因为每张图片不包含一定数量的颗粒,即包含面积、周长等的向量不具有相同的长度。所以现在我正在尝试细胞。但是我不能让它工作 这是我的密码: %% Calculating metrics for k = 1 : length(theFiles) % loop over the boundaries for
%% Calculating metrics
for k = 1 : length(theFiles)
% loop over the boundaries
for j = 1:obj2
%Plotting boundaries
boundary = B{j};
plot(boundary(:,2), boundary(:,1),'w','LineWidth',2)
drawnow
% obtain (X,Y) boundary coordinates corresponding to label 'j'
boundary = B{j};
% compute a simple estimate of the object's perimeter
delta_sq = diff(boundary).^2;
perimeter = sum(sqrt(sum(delta_sq,2)));
perimeterD{k}(j)=[perimeter];
% obtain the area calculation corresponding to label 'k'
area = stats(j).Area;
areaD{k}{j,1}=area;
% compute the roundness metric
metric = 4*pi*area/perimeter^2;
metricD{k}{j,1}=metric;
end
end
其中文件是分析的图像
问题是,当运行两个图像时,我会得到一个单元格:
areaD =
{40x1 cell} {27x1 cell}
我想要的是:
areaD =
[ 40x1 double] [ 27x1 double]
或者我应该使用结构来代替
干杯,
Martin你想要的只是在单元格中,因为所有列的矩阵长度都必须相同,但是你可以在单个结构中保存它,这可能会容易得多,一个strture可以有不同长度的向量。存储到一个结构中的另一个好处是,你可以在一个sam结构中存储完全不同类型的数据。是的,我在考虑这个问题。我确实解决了这个问题,它现在可以和细胞一起工作。但结构可能会更好。谢谢面积{k}(j,1)=面积;