1
我的matlab脚本中出现了性能问题。图像识别 - 性能问题
我想要做的是找到一条水平线,沿着它的强度值的变化是最小的。天真的执行如下。问题是如何重写它以提高性能。
% img is some previously loaded image
height = size(img,1);
width = size(img,2);
smallestVar = inf;
smallestXline = [];
smallestYline = [];
for i=1:height,
for j=1:width,
for k=i+1:height,
xline = [j j];
yline = [i k];
variance = var(improfile(img,xline,yline));
if variance < smallestVar
smallestVar = variance;
smallestXline = xline;
smallestYline = yline;
end
end
end
end
您可以绝对矢量化大量此代码。我会首先分析它:http://www.mathworks.com/help/techdoc/ref/profile.html。内置的MATLAB分析器非常好,可以帮助您开始使用。但是,如果可能,MATLAB代码应该始终是矢量化的。见Maurits post。 – linuxuser27