2016-06-29 3 views
0

Я записываю количество изображений и хранить их в 3-мерном массиве, как «сложенная стопка» изображений, как это:avergaing изображения и сохранение изображений в среде MATLAB

for i = 1:numberOfImages 
    ima = pfREAD_IMAGE(board_handle, 0, imasize, ima_ptr, 30000); 
    imArray(:,:,i) = ima; 
end 

Где pfREAD_IMAGE() является чтобы получить изображения. Впоследствии я хочу рассчитать среднее значение всех изображений, но сохранить все отдельные изображения. Я делаю это так:

[imHeight, imWidth, imStackHeight] = size(imArray); 
avgIma = zeros(imHeight, imWidth); 
for i = 1:imHeight 
    for j = 1:imWidth 
     avgIma(i,j) = mean(imArray(i,j,:)); 
    end 
end 

Этот метод работает, но очень медленно из-за медленного зацикливание от Matlab. Каков наилучший способ ускорить усреднение?

+2

'avgIma = mean (imArray, 3)' – BillBokeey

+0

@BillBokeey Отлично, спасибо! – Dave

ответ

0

Функция mean в MATLAB поддерживает параметр для установки измерения, над которым он работает.
Поскольку вы укладываете изображения в 3-м измерении, вам нужно применить Среднее значение оператора в этом измерении - avgIma = mean(imArray, 3).

Смежные вопросы