Ваш первый метод,
Cont_method1 = sqrt(
1/(N*M) * sum(
I(:)-Lumi
)^2
);
, вычисляет сумму I(:)-Lumi
, а затем возводит ее в квадрат.Уравнение, которое вы связываете, принимает сумму квадратов:
Cont_method1 = sqrt(
1/(N*M) * sum(
( I(:)-Lumi )^2
)
);
Это эквивалентно вашему второму методу:
Cont_method2 = sqrt(
1/prod(size(I)) * sum(
power( ( I(:)-Lumi ), 2 )
)
);
Обратите внимание, что N*M
и prod(size(I))
- это одно и то же,и то, и другое эквивалентно более эффективному numel(I)
.И обратите внимание, что деление суммы на количество элементов аналогично вычислению среднего с использованием mean
.Таким образом, вы можете упростить:
Cont_method3 = sqrt( mean( ( I(:)-Lumi )^2 ));
Но обратите внимание, что все, что вы здесь делаете, это вычисление масштабированной нормы:
Cont_method4 = norm(I(:)-Lumi) / sqrt(numel(I));