Есть две формулы, которые мне трудно представить в MATLAB .Пусть есть два RGB-изображения, A
и B
, одинакового размера, с m
, n
, представляющими строки и столбец, и третьим измерением d = 3.Formula1
в основном вычисляет скорость изменения пикселей, если A
- исходное изображение, а B
- искаженная версия.Formula2
рассчитывает среднюю скорость изменения пикселей.
1.Formula1= { sum(C(m,n,d)) / (m * n)} * 100
where `C(m,n) = 0`, if `A(m,n) = B(m,n)`
`=1`, if `A(m,n) != B(m,n)`
Сумма по всем строкам и столбцам, включая третье измерение.
Я пробовал что-то вроде этого:
Formula1 = sum(sum(abs(double(A)-double(B))./(m*n), 1), 2);
Но это не даетлюбая ошибкаОднако это не правильный способ представить его, поскольку условия if
не включены.Проблемная область состоит в том, как включить условие, проверяя, A == B
или нет, и A != B
.
2.Formula2 ={ 1/ (m*n)} * sum { norm (A - B) / 255} * 100
Опять же, здесь также будет суммирование по всем измерениям.Я не знаю, как сформировать норму матрицы.
Formula3 is ={ 1/ (m*n)} * sum {(A - B) / 255} * 100
Я попробовал вот так
C = double (сумма (AB, 3));r = изменить (100 * (C / 255) / (m * n), [1 3])
Но есть ошибка, утверждающая, что размерность должна быть одинаковой, а изменение формы не работает.