# Flat fielding causing the image tile to become white

**URL:** https://discourse.itk.org/t/flat-fielding-causing-the-image-tile-to-become-white/6736
**Category:** Algorithms
**Tags:** python, simpleitk
**Created:** [June 30, 2024, 2:46pm UTC](https://discourse.itk.org/t/flat-fielding-causing-the-image-tile-to-become-white/6736 "2024-06-30T14:46:56Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![sleepingcat4](https://discourse.itk.org/user_avatar/discourse.itk.org/sleepingcat4/32/4032_2.png) [@sleepingcat4](https://discourse.itk.org/u/sleepingcat4)
#### Post date: [June 30, 2024, 2:46pm UTC](https://discourse.itk.org/t/flat-fielding-causing-the-image-tile-to-become-white/6736/1 "2024-06-30T14:46:56Z")

</div>

I have an image montage problem and I have been using flat fielding to fix the individual image tile before applying simple itk’s montage feature to receive the final resampled image. Btw I’m using simpleitk for the flat fielding process as well. Can someone help me out?

reference code

```auto
import os
import SimpleITK as sitk

def process_image(file_path, output_dir, shrink_factor=4):
    raw_img_sitk = sitk.ReadImage(file_path, sitk.sitkFloat32)
    raw_img_sitk_arr = sitk.GetArrayFromImage(raw_img_sitk)
    transformed = sitk.RescaleIntensity(raw_img_sitk, 0, 255)
    transformed = sitk.LiThreshold(transformed, 0, 1)
    head_mask = transformed
    input_image = sitk.Shrink(raw_img_sitk, [shrink_factor] * raw_img_sitk.GetDimension())
    mask_image = sitk.Shrink(head_mask, [shrink_factor] * raw_img_sitk.GetDimension())
    bias_corrector = sitk.N4BiasFieldCorrectionImageFilter()
    corrected = bias_corrector.Execute(input_image, mask_image)
    log_bias_field = bias_corrector.GetLogBiasFieldAsImage(raw_img_sitk)
    corrected_image_full_resolution = raw_img_sitk / sitk.Exp(log_bias_field)
    corrected_float = sitk.Cast(corrected_image_full_resolution, sitk.sitkFloat32)
    output_path = os.path.join(output_dir, os.path.basename(file_path))
    sitk.WriteImage(corrected_float, output_path)

def process_folder(input_folder, output_folder):
    os.makedirs(output_folder, exist_ok=True)
    for file_name in os.listdir(input_folder):
        if file_name.lower().endswith(('.tif', '.tiff')):
            file_path = os.path.join(input_folder, file_name)
            process_image(file_path, output_folder)

```

Images before flat fielding being applied

 ![image](https://discourse.itk.org/uploads/default/original/2X/7/71fbbf369b00bacbbf717938d2a53cc589dbbb70.png)

Image after flat fielding applied

 ![image](https://discourse.itk.org/uploads/default/original/2X/c/cf5eb001b90ab94d42d8bb5bc9783eb4b45b70f9.png)

---

<div class="post-metadata">

### Author: ![sleepingcat4](https://discourse.itk.org/user_avatar/discourse.itk.org/sleepingcat4/32/4032_2.png) [@sleepingcat4](https://discourse.itk.org/u/sleepingcat4)
#### Post date: [July 1, 2024, 6:03pm UTC](https://discourse.itk.org/t/flat-fielding-causing-the-image-tile-to-become-white/6736/2 "2024-07-01T18:03:25Z")

</div>

@dzenanz can you help with this as well?

---

<div class="post-metadata">

### Author: ![dzenanz](https://discourse.itk.org/user_avatar/discourse.itk.org/dzenanz/32/1093_2.png) [@dzenanz](https://discourse.itk.org/u/dzenanz)
#### Post date: [July 1, 2024, 6:11pm UTC](https://discourse.itk.org/t/flat-fielding-causing-the-image-tile-to-become-white/6736/3 "2024-07-01T18:11:36Z")

</div>

There is probably a bug somewhere in your code. Debug it by looking at all the intermediate steps, e.g. by outputting them to files.
