jcreinhold/intensity-normalization

"TypeError: Axis must be specified when shapes of a and weights differ." in the LSQ method

Siji-chl opened this issue ยท 0 comments

๐Ÿ› Bug

My data are 3D brain MRI with large slicethickness (~5mm) and slicegap (~5mm) in .nii.gz format. First, I used HD-BET algorithm to get brain masks, then normalised the images using the LSQ method. But the code ran into the following error.

Code:

t1_image_paths = glob(root + r'/*_{}.nii.gz'.format(t1_modality))
t1_image_paths = sorted(t1_image_paths)
t1_images = [nib.load(t1_image_path) for t1_image_path in t1_image_paths]
t1_images_array = [t1_image.get_fdata() for t1_image in t1_images]
mask_paths = glob(mask_root + r'/*_{}_stripped_mask.nii.gz'.format(mask_modality))
mask_paths = sorted(mask_paths)
masks = [nib.load(mask_path) for mask_path in mask_paths]
masks_array = [mask.get_fdata() for mask in masks]
lsq_norm = LeastSquaresNormalize(norm_value=100)
lsq_norm.fit(t1_images, masks, modality='t1')
Traceback (most recent call last):
  File "/home/chenhaolin/Documents/normalized/normalize.py", line 286, in <module>
    lsq_norm.fit(t1_images, masks, modality='t1')
  File "/home/chenhaolin/Documents/py_environments/chl3.9/lib/python3.9/site-packages/intensity_normalization/normalize/base.py", line 389, in fit
    self._fit(images, masks, modality=modality, **kwargs)
  File "/home/chenhaolin/Documents/py_environments/chl3.9/lib/python3.9/site-packages/intensity_normalization/normalize/lsq.py", line 97, in _fit
    csf_mean = np.average(image, weights=tissue_membership[..., 0])
  File "<__array_function__ internals>", line 180, in average
  File "/home/chenhaolin/Documents/py_environments/chl3.9/lib/python3.9/site-packages/numpy/lib/function_base.py", line 508, in average
    raise TypeError(
TypeError: Axis must be specified when shapes of a and weights differ.

Environment

  • intensity-normalization version (2.2.3):
  • numpy version (1.22.3):
  • OS (Linux 18.04.6 LTS (GNU/Linux 5.4.0-107-generic x86_64)):
  • How you installed intensity-normalization (via pip):
  • Python version: 3.9.7
  • Any other relevant information: None