Esempio n. 1
0
    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, :, :, :])
Esempio n. 2
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, :, :])