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