我在图像变量 ves 中获得了眼睛的血管。我发现连接组件的数量(8 个连接)作为 blob。对于每个 blob,我需要计算面积、长轴长度和质心,并将这些值存储在矩阵 testfv(每一行对应于每个属性)中。对于单个 blob,Area 返回一个 1x1 结构,Centroid 返回一个 1x2 结构,并且MajorAxisLength 返回一个 1x1 结构。因此,我猜根据 blob 的数量,存储区域、质心和 MajorAxisLength 的值所需的单元格数量会有所不同,因此像我所做的那样仅使用一个 testfv 来存储这些值是错误的。可能吗?这是我尝试过的代码(我假设 testfv 有 25 列允许我存储多达 8 个 blob 信息)
[labeledImage numberOfBlobs] = bwlabel(ves, 8);
col=numberOfBlobs*2;
testfv = zeros(3,col);
for i=1:col
blobMeasurements = regionprops(labeledImage, 'Area');
testfv(1,col) = [blobMeasurements.Area];
blobMeasurements = regionprops(labeledImage, 'MajorAxisLength');
testfv(2,col)= [blobMeasurements.MajorAxisLength];
blobMeasurements = regionprops(labeledImage, 'Centroid');
testfv(3,col) = [blobMeasurements.Centroid];
end
我收到以下错误....
??? Subscripted assignment dimension mismatch.
Error in ==> alpha1 at 191 <br/>
testfv(1,col) = [blobMeasurements.Area];
另外,我需要将 testfv 矩阵的数据写入 excel 工作表文件。我该怎么做?非常感谢您的帮助,因为我是 Matlab 的新手。