Проблема с нарезкой в ​​MATLAB?

У меня есть часть кода, которая находит углы Харриса в последовательности изображений. Мне нужно сделать это для 92 изображений, но это довольно медленно. Поэтому я бы хотел запустить код параллельно. В приведенном ниже коде есть ошибка, связанная с переменной "corners"

%% Harris corners
    max_pts = 900;
    corners = zeros(max_pts,2,size(images,3));
    parfor i = 1:size(images,3)
        I = images(:,:,i);
        [y x] = get_corners(I,max_pts);
        corners(1:length(y),:,i) = [y x];
    end

, в которой говорится:

MATLAB запускает циклы в функциях parfor, разделяя итерации цикла на группы, а затем отправляя их рабочим MATLAB, где они работают параллельно . Чтобы MATLAB делал это повторяемым и надежным способом, он должен уметь классифицировать все переменные, используемые в цикле. Предлагаемое действие Исправьте использование указанной переменной. Для получения дополнительной информации о классификации переменных и других ограничениях на итерацию цикла parfor см. «Классификация переменных» в документации Parallel Computing Toolbox.

Есть идеи, как это исправить?

Спасибо!

8
задан Mohsen Nosratinia 28 August 2013 в 14:13
поделиться