Fasters 实现的任何其他方法 - matlab 元胞数组
Any other approach for Fasters implementation - matlab cell array
我有一张图片;我正在 运行 对其进行循环并创建一个元胞数组。但是所有值的处理过程都非常缓慢。有什么办法可以加快进程吗?
或者有其他更快的方法吗?
如有任何帮助,我们将不胜感激。
[a,b] = size(depth);
for i=1:a % a = 1024
for j=1:b %b = 1360
if isfinite(depth(i,j))
segId = (label(i,j));
if (segId > 0)
mycell{1,idx,segId} = {i,j,depth(i,j)};
idx=idx+1;
end
end
end
end
不是每次交互都更新 mycell 的大小,而是预先创建单元格结构。那应该稍微固定一下。
然而,您正在评估图像的所有点。为什么不做一些数学运算呢?
[rol,col] = find(depth(depth>0)) - 我快速扫描你的代码,我认为你正在寻找这个值。
这为您提供了您想要在图像中找到的位置。也许你只需要把它放在一个for循环上,它会更快。
这比以前的方法快得多。谢谢您的帮助。
[row,col] = find(~(isnan(depth)));
len = length(row);
for i= 1:len
segId = (label(row(i),col(i)));
if (segId > 0)
mycell{1,idx,segId} = {row(i),col(i),depth(row(i),col(i))};
idx=idx+1;
end
end
我有一张图片;我正在 运行 对其进行循环并创建一个元胞数组。但是所有值的处理过程都非常缓慢。有什么办法可以加快进程吗?
或者有其他更快的方法吗?
如有任何帮助,我们将不胜感激。
[a,b] = size(depth);
for i=1:a % a = 1024
for j=1:b %b = 1360
if isfinite(depth(i,j))
segId = (label(i,j));
if (segId > 0)
mycell{1,idx,segId} = {i,j,depth(i,j)};
idx=idx+1;
end
end
end
end
不是每次交互都更新 mycell 的大小,而是预先创建单元格结构。那应该稍微固定一下。
然而,您正在评估图像的所有点。为什么不做一些数学运算呢?
[rol,col] = find(depth(depth>0)) - 我快速扫描你的代码,我认为你正在寻找这个值。
这为您提供了您想要在图像中找到的位置。也许你只需要把它放在一个for循环上,它会更快。
这比以前的方法快得多。谢谢您的帮助。
[row,col] = find(~(isnan(depth)));
len = length(row);
for i= 1:len
segId = (label(row(i),col(i)));
if (segId > 0)
mycell{1,idx,segId} = {row(i),col(i),depth(row(i),col(i))};
idx=idx+1;
end
end