Source code for monalisa.image._rms
"""Port of src/imageN/bmRMS.m."""
import numpy as np
from monalisa._mat import squeeze
from monalisa.array._block_reshape import block_reshape
from monalisa.array._col_reshape import col_reshape
from monalisa.array._is_block_shape import is_block_shape
from monalisa.array._is_col_shape import is_col_shape
[docs]
def rms(x, N_u):
"""Root mean square over the channels."""
c = col_reshape(x, N_u)
a = squeeze(np.sqrt(np.mean(np.abs(c) ** 2, axis=1, keepdims=True)))
if is_col_shape(x, N_u):
a = col_reshape(a, N_u)
elif is_block_shape(x, N_u):
a = block_reshape(a, N_u)
return a