diff --git a/src/tapenade/preprocessing/_intensity_normalization.py b/src/tapenade/preprocessing/_intensity_normalization.py index 00d1cf5..801c8bf 100644 --- a/src/tapenade/preprocessing/_intensity_normalization.py +++ b/src/tapenade/preprocessing/_intensity_normalization.py @@ -142,6 +142,14 @@ def _normalize_intensity( array_norm[sl_norm] ) / np.nanmedian(array[sl]) + if np.isnan(array_normalization_factor) or array_normalization_factor == 0 or np.isinf(array_normalization_factor): + print( + "Normalization factor is NaN or inf or zero. " + "Check whether the signals are not saturated by 0s." + ) + + array_normalization_factor = np.nanmean(array_norm[sl_norm]) / np.nanmean(array[sl]) + array_norm = array_norm / array_normalization_factor return array_norm diff --git a/src/tapenade/reconstruction/_reconstruct.py b/src/tapenade/reconstruction/_reconstruct.py index f5a31e9..f8cf496 100644 --- a/src/tapenade/reconstruction/_reconstruct.py +++ b/src/tapenade/reconstruction/_reconstruct.py @@ -148,14 +148,22 @@ def create_folders( Path(folder_sample / "weights" / "before_trsf").mkdir(exist_ok=True) Path(folder_sample / "weights" / "after_trsf").mkdir(exist_ok=True) - image_ref = io.imread(Path(folder_experiment) / f"{filename_ref}.tif") - image_float = io.imread( + # image_ref = io.imread(Path(folder_experiment) / f"{filename_ref}.tif") + # image_float = io.imread( + # Path(folder_experiment) / f"{filename_float}.tif" + # ) + image_ref = tifffile.imread(Path(folder_experiment) / f"{filename_ref}.tif") + image_float = tifffile.imread( Path(folder_experiment) / f"{filename_float}.tif" ) + + if len(channels) > 1: for ind_ch, ch in enumerate(channels): - imref = image_ref[:, :, :, ind_ch] - imfloat = image_float[:, :, :, ind_ch] + # imref = image_ref[:, :, :, ind_ch] + # imfloat = image_float[:, :, :, ind_ch] + imref=image_ref[:,ind_ch,:,:] + imfloat=image_float[:,ind_ch,:,:] io.imsave( Path(folder_sample) / "raw" / f"{filename_ref}_{ch}.tif", imref, ##CAREFUL needs to be float32 or uint16 orint16 otherwise the blockmatching does not compute/save the result