我有以下代码将一个目录下的多个图像导入Matlab中的一个结构,下面是一个图像的例子。在Matlab中填充多个图像
myPath= 'E:\conduit_stl(smooth contour)\Collagen Contour Slices\'; %'
fileNames = dir(fullfile(myPath, '*.tif'));
C = cell(length(fileNames), 1);
for k = 1:length(fileNames)
filename = fileNames(k).name;
C{k} = imread(filename);
se = strel('disk', 2, 0);
C = imclose(C, se);
filled = imfill(C,'holes');
end
虽然现在我想对所有图像进行填充,后来找到了重心。然而,当试图这样做时,出现一个错误:“预期的输入数字1,I1或BW1是这些类型之一:double,... etc”我尝试将图像转换为双精度,但这只是导致:“从细胞转换为双倍是不可能的。“
这很可能是由于结构类型,图像被“安置”在里面,但我不知道这一点。
对此的帮助将不胜感激。
'C'不是结构,而是一个单元阵列(如你初始化它)。将图像存储在“常规”数组中会更有效。另外,由于您对所有图像使用相同的结构元素,因此可以将其从循环中取出并仅定义一次。 –
你是否也想把大括号改为正方括号?如果我这样做,我得到这个错误:“从uint8转换到单元格是不可能的。” – Idrawthings