У меня проблема с производительностью в скрипте 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