【发布时间】:2017-02-03 22:28:48
【问题描述】:
在这段代码中,我有一个包含 10 个类的集群图像,我想为每个级别提取 10 个不同的图像并保存为 10 个图像 下面是我使用的代码
tic
numberOfClasses = 10;
segment_label_images = cell(1,numberOfClasses);
pixelCount = zeros(1,numberOfClasses);
[rs, cs] = size(classImage);
% classImage has intensity range from 1-numberOfClasses
for k = 1:numberOfClasses
for i = 1:rs
for j = 1:cs
if classImage(i,j) == k
segment_label_images{k}(i,j) = 1;
else
segment_label_images{k}(i,j) = 0;
end
end
end
pixelCount(k) = sum(segment_label_images{k}(:));
%figure, imshow(segment_label_images{k},[]);
end
toc
在这里,我有 3 个 for 循环,我认为这会影响计算时间。经过的时间是 0.089413 秒。
有什么建议可以避免使用 for 循环来缩短压缩时间。?谢谢,Gopi
【问题讨论】:
-
为了性能,不要使用元胞数组。对灰度图像使用 3D 数组 IMG(i,j,N)。
标签: matlab performance