def test_normalize_zscore(self): img_path = os.path.join(base_path, '../test_data/tiffconnector_1/im/') label_path = os.path.join(base_path, '../test_data/tiffconnector_1/labels/') c = TiffConnector(img_path, label_path) d = Dataset(c) size = (1, 2, 2) pad = (0, 0, 0) batchsize = 2 nr_channels = 3 nz = 1 nx = 4 ny = 5 m = TrainingBatch(d, size, padding_zxy=pad, batch_size=len(d.label_values())) m.set_normalize_mode('local_z_score') pixels = np.zeros((batchsize, nr_channels, nz, nx, ny)) pixels[:, 0, :, :, :] = 1 pixels[:, 1, :, :, :] = 2 pixels[:, 2, :, :, :] = 3 p_norm = m._normalize(pixels) self.assertTrue((p_norm == 0).all()) # add variation pixels[:, 0, 0, 0, 0] = 2 pixels[:, 0, 0, 0, 1] = 0 pixels[:, 1, 0, 0, 0] = 3 pixels[:, 1, 0, 0, 1] = 1 pixels[:, 2, 0, 0, 0] = 4 pixels[:, 2, 0, 0, 1] = 2 p_norm = m._normalize(pixels) assert_array_equal(p_norm[:, 0, :, :, :], p_norm[:, 1, :, :, :]) assert_array_equal(p_norm[:, 0, :, :, :], p_norm[:, 2, :, :, :]) val = np.array([[[3.16227766, -3.16227766, 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]]]) assert_array_almost_equal(val, p_norm[0, 0, :, :, :])
def test_normalize_global(self): img_path = os.path.join(base_path, '../test_data/tiffconnector_1/im/') label_path = os.path.join(base_path, '../test_data/tiffconnector_1/labels/') c = TiffConnector(img_path, label_path) d = Dataset(c) size = (1, 2, 2) pad = (0, 0, 0) batchsize = 2 nr_channels = 3 nz = 1 nx = 4 ny = 5 val = np.array( [[[0.33333333, 0.33333333, 0.33333333, 0.33333333, 0.33333333], [0.33333333, 0.33333333, 0.33333333, 0.33333333, 0.33333333], [0.33333333, 0.33333333, 0.33333333, 0.33333333, 0.33333333], [0.33333333, 0.33333333, 0.33333333, 0.33333333, 0.33333333]], [[0.66666667, 0.66666667, 0.66666667, 0.66666667, 0.66666667], [0.66666667, 0.66666667, 0.66666667, 0.66666667, 0.66666667], [0.66666667, 0.66666667, 0.66666667, 0.66666667, 0.66666667], [0.66666667, 0.66666667, 0.66666667, 0.66666667, 0.66666667]], [[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]]]) m = TrainingBatch(d, size, padding_zxy=pad, batch_size=len(d.label_values())) m.set_normalize_mode('global', minmax=[0, 3]) pixels = np.zeros((batchsize, nr_channels, nz, nx, ny)) pixels[:, 0, :, :, :] = 1 pixels[:, 1, :, :, :] = 2 pixels[:, 2, :, :, :] = 3 p_norm = m._normalize(pixels) pprint(p_norm) print(pixels.shape) print(p_norm.shape) assert_array_almost_equal(val, p_norm[0, :, 0, :, :])