【发布时间】:2012-10-19 15:11:14
【问题描述】:
我想改进我的一个简单的 matlab 函数。 有没有任何算术方法来实现这个功能?我认为这会表现得更好。
function img_output = cutchannels(img_input, min, max)
[r c l] = size(img_input);
img_output = double(img_input);
for i = 1:r
for j = 1:c
for k = 1:l
if(img_output(i:j:k)> max)
img_output(i:j:k) = max;
elseif(img_output(i:j:k) < min)
img_output(i:j:k) = min;
end
end
end
end
end
【问题讨论】:
-
为什么每次迭代都查找
img_output(i:j:k)?这很奇怪。如果您访问img_output(i,j,k)会更有意义。 for 循环可能完全没有必要。 -
因为我不想检查图像中的每个像素值是否高于最大值或低于最小值。
-
您没有检查图像中的每个像素。
-
-1:这个问题我没发现什么好消息,现在比刚开始看的时候更郁闷了。
-
这些答案对您有用吗?
标签: performance matlab math matrix vectorization