Are there any image harmonization modules in sitk?

Hi, I am working on 3D CT images (128x128x128) where the region of interest is liver. I am trying to apply harmonization methods on 3D volumes where my features are voxel intensities.

I first tried neurocombat (GitHub - Jfortin1/ComBatHarmonization: Harmonization of multi-site imaging data with ComBat). I transformed for each image the 3d array of voxel intensities into a long 1d vector by concatenating the slides. This allows me to create a matrix where each column is one image. Then I applied neuroCombat on the matrix, and transformed back each harmonized column into a 3d array with the original dimensions. However, the background intensities interfere with the results and poses problems for the NeuroCombat model (harmonized results are worse than original images).

My questions are as follows:

  1. Are there any image harmonization modules in sitk?
  2. My images have different background voxel intensities ranging from -900 to -3024. If I set them to same value, the images does not display correctly and the final result after harmonization is distorted/blurred. How can I remove the impact from background voxels on the harmonization algorithm (I am working on raw data/ not intensity normalized).

This might not be directly related to sitk, but I was wondering if the medical imaging expert community here could shed some light on this.
Any help would be greatly appreciated.

CT images with Hounsfield values should already be quite harmonized. But you might look into HistogramMatchingImageFilter, or maybe Adaptive Histogram Equalization.

If a value in your CT image is below -1024 (e.g. -3072), you could set it to -1024 to play nicer with your algorithmic harmonization efforts.

Hi @dzenanz , thanks for the reply. When I set the values below -1024 to -1024, the image does not display correctly and the harmonized image is very blurred.