Source code for abm_shape_collection.get_shape_coefficients
import numpy as np
from aicsshparam import shparam, shtools
[docs]def get_shape_coefficients(array: np.ndarray, reference: np.ndarray, order: int) -> dict:
"""
Calculate spherical harmonic coefficients for binary image array.
Parameters
----------
array
Binary image array.
reference
Binary reference array that determines alignment angle.
order
Order of the spherical harmonics coefficient parametrization.
Returns
-------
:
Dictionary of spherical harmonics, angle, and MSE.
"""
_, angle = shtools.align_image_2d(image=reference)
aligned_array = shtools.apply_image_alignment_2d(array, angle).squeeze()
(coeffs, reconstructed_array), (_, _, downsampled_array, _) = shparam.get_shcoeffs(
image=aligned_array, lmax=order, compute_lcc=False, alignment_2d=False
)
mse = shtools.get_reconstruction_error(downsampled_array, reconstructed_array)
coeffs["angle"] = angle
coeffs["mse"] = mse
return coeffs