Ejemplo n.º 1
0
    def test_extract_dtype(self):
        im = np.load('data/img_4d.npy').astype(np.float)

        patch_shape = (8, 15, 29, 2)
        patch_stride = (7, 26, 31, 3)
        pe_str = PatchExtractor(patch_shape, stride=patch_stride)
        patch_str = pe_str.extract(im)

        self.assertEqual(patch_str.dtype, patch_str.dtype)
Ejemplo n.º 2
0
    def test_padding_input(self):
        im = np.random.rand(141, 141)
        patch_shape = (128, 128)

        pe = PatchExtractor(patch_shape, padding='constant')

        patch = pe.extract(im)

        im_rec = pe.reconstruct(patch)

        self.assertTrue(np.allclose(im_rec, im))
Ejemplo n.º 3
0
    def test_extract_indexes_memmap(self):
        im = np.load('data/img_4d.npy', mmap_mode="r")

        patch_shape = (9, 32, 32, 3)
        indexes = np.arange(0, 12, 3)

        pe = PatchExtractor(patch_shape, indexes=indexes)
        patch = pe.extract(im)

        self.assertEqual(patch.ndim, 1 + im.ndim)
        self.assertEqual(patch.shape[0], len(indexes))
Ejemplo n.º 4
0
    def test_count_patches(self):
        im = np.asarray(Image.open('data/img_color.png'))

        patch_shape = (15, 29, 1)
        patch_stride = (34, 5, 2)

        pe = PatchExtractor(patch_shape, stride=patch_stride)
        patch = pe.extract(im)

        self.assertEqual(count_patches(im.shape, patch_shape, patch_stride),
                         np.prod(patch.shape[:3]))
Ejemplo n.º 5
0
    def test_extract_indexes(self):
        im = np.asarray(Image.open('data/img_color.png'))

        patch_shape = (32, 32, 2)
        indexes = np.arange(0, 42, 3)

        pe = PatchExtractor(patch_shape, indexes=indexes)
        patch = pe.extract(im)

        self.assertEqual(patch.ndim, 1 + im.ndim)
        self.assertEqual(patch.shape[0], len(indexes))
Ejemplo n.º 6
0
    def test_padding_patch(self):
        im = np.random.rand(101, 101)
        patch_shape = (128, 128)

        pe = PatchExtractor(patch_shape, padding='linear_ramp')

        patch = pe.extract(im)

        im_rec = pe.reconstruct(patch)

        self.assertTrue(np.allclose(im_rec, im))
Ejemplo n.º 7
0
    def test_mid_intensity_high_texture_threshold(self):
        im = np.asarray(Image.open('data/img_color.png'))

        patch_shape = (32, 32, 2)
        func = mid_intensity_high_texture
        threshold = 0.8
        pe = PatchExtractor(patch_shape, function=func, threshold=threshold)
        patch = pe.extract(im)

        p = patch[0]
        self.assertEqual(len(patch), 147)
        self.assertAlmostEqual(mid_intensity_high_texture(p),
                               0.926545988463008)
Ejemplo n.º 8
0
  def get_transformed_data(self,patchSize, dataDir='features/'):
    patchEx1 = PatchExtractor(self.start, self.start, self.movePosition, self.isblack)
    patchEx2 = PatchExtractor(self.start, self.move, self.movePosition, self.isblack)
    patchEx1.setPatchSize(patchSize)
    patchEx2.setPatchSize(patchSize)
    data1 = patchEx1.calculate_feature()
    data2 = patchEx2.calculate_feature()

    f = open(dataDir+'dictionary' + str(patchSize) + '.txt')
    dictionaryData = f.read()
    f.close()
    dictionary = pickle.loads(dictionaryData)
    data1 = dictionary.transform(data1)
    data2 = dictionary.transform(data2)
    data = data2 - data1

    return data;
Ejemplo n.º 9
0
    def test_extract_output_shape_4d_memmap(self):
        im = np.load('data/img_4d.npy', mmap_mode="r")

        patch_shape = (9, 32, 32, 3)
        pe = PatchExtractor(patch_shape)
        patch = pe.extract(im)

        stride = (7, 17, 17, 2)
        pe_stride = PatchExtractor(patch_shape, stride=stride)
        patch_stride = pe_stride.extract(im)

        offset = (1, 0, 0, 0)
        pe_offset = PatchExtractor(patch_shape, offset=offset)
        patch_offset = pe_offset.extract(im)

        self.assertEqual(patch.shape, (3, 2, 2, 1, 9, 32, 32, 3))
        self.assertEqual(patch_stride.shape, (4, 2, 2, 1, 9, 32, 32, 3))
        self.assertEqual(patch_offset.shape, (3, 2, 2, 1, 9, 32, 32, 3))
Ejemplo n.º 10
0
 def test_init_with_function(self):
     pe = PatchExtractor((24, 24, 24),
                         offset=(2, 2, 2),
                         stride=(8, 8, 8),
                         threshold=0.1,
                         function=mid_intensity_high_texture)
     self.assertIsInstance(pe.dim, tuple)
     self.assertIsInstance(pe.offset, tuple)
     self.assertIsInstance(pe.stride, tuple)
     self.assertEqual(pe.rand, False)
     self.assertIsInstance(pe.threshold, float)
     self.assertIsNone(pe.indexes)
     self.assertTrue(callable(pe.function_handler))
Ejemplo n.º 11
0
 def test_init_with_rand(self):
     pe = PatchExtractor((24, 24, 24),
                         offset=(2, 2, 2),
                         stride=(8, 8, 8),
                         threshold=0.1,
                         rand=True)
     self.assertIsInstance(pe.dim, tuple)
     self.assertIsInstance(pe.offset, tuple)
     self.assertIsInstance(pe.stride, tuple)
     self.assertIsNone(pe.function_handler)
     self.assertIsInstance(pe.threshold, float)
     self.assertIsNone(pe.indexes)
     self.assertIsInstance(pe.rand, bool)
Ejemplo n.º 12
0
    def test_reconstruct_grayscale(self):
        im = np.asarray(Image.open('data/img_gray.png'))

        patch_shape = (15, 29)
        pe = PatchExtractor(patch_shape)
        patch = pe.extract(im)
        im_recon = pe.reconstruct(patch)

        patch_stride = (2, 3)
        pe_str = PatchExtractor(patch_shape, stride=patch_stride)
        patch_str = pe_str.extract(im)
        im_recon_str = pe_str.reconstruct(patch_str)

        im_recon_gt = np.asarray(Image.open('data/img_gray_recon_15_29.png'))
        im_recon_str_gt = np.asarray(
            Image.open('data/img_gray_recon_15_29_str_2_3.png'))
        self.assertTrue(np.allclose(im_recon_gt, im_recon))
        self.assertTrue(np.allclose(im_recon_str_gt, im_recon_str))
Ejemplo n.º 13
0
    def test_reconstruct_color(self):
        im = np.asarray(Image.open('data/img_color.png'))

        patch_shape = (15, 29, 2)
        pe = PatchExtractor(patch_shape)
        patch = pe.extract(im)
        im_recon = pe.reconstruct(patch)

        patch_stride = (2, 3, 1)
        pe_str = PatchExtractor(patch_shape, stride=patch_stride)
        patch_str = pe_str.extract(im)
        im_recon_str = pe_str.reconstruct(patch_str)

        im_recon_gt = np.asarray(
            Image.open('data/img_color_recon_15_29_2.png'))
        im_recon_str_gt = np.asarray(
            Image.open('data/img_color_recon_15_29_2_str_2_3_1.png'))
        self.assertTrue(np.allclose(im_recon_gt, im_recon))
        self.assertTrue(np.allclose(im_recon_str_gt, im_recon_str))
Ejemplo n.º 14
0
    def test_reconstruct_4d(self):
        im = np.load('data/img_4d.npy')

        patch_shape = (8, 15, 29, 2)
        pe = PatchExtractor(patch_shape)
        patch = pe.extract(im)
        im_recon = pe.reconstruct(patch)

        patch_stride = (7, 26, 31, 3)
        pe_str = PatchExtractor(patch_shape, stride=patch_stride)
        patch_str = pe_str.extract(im)
        im_recon_str = pe_str.reconstruct(patch_str)

        im_recon_gt = np.load('data/img_4d_recon_8_15_29_2.npy')
        im_recon_str_gt = np.load(
            'data/img_4d_recon_8_15_29_2_str_7_26_31_1.npy')
        self.assertTrue(np.allclose(im_recon_gt, im_recon))
        self.assertTrue(
            np.allclose(im_recon_str_gt, im_recon_str, equal_nan=True))
Ejemplo n.º 15
0
    def test_extract_output_shape_4d(self):
        im = np.load('data/img_4d.npy')

        patch_shape = (9, 32, 32, 3)
        pe = PatchExtractor(patch_shape)
        patch = pe.extract(im)

        stride = (7, 17, 17, 2)
        pe_stride = PatchExtractor(patch_shape, stride=stride)
        patch_stride = pe_stride.extract(im)

        self.assertEqual(patch.shape, (3, 2, 2, 1, 9, 32, 32, 3))
        self.assertEqual(patch_stride.shape, (4, 2, 2, 1, 9, 32, 32, 3))
Ejemplo n.º 16
0
    def test_extract_output_shape_color(self):
        im = np.asarray(Image.open('data/img_color.png'))

        patch_shape = (32, 32, 2)
        pe = PatchExtractor(patch_shape)
        patch = pe.extract(im)

        stride = (17, 17, 2)
        pe_stride = PatchExtractor(patch_shape, stride=stride)
        patch_stride = pe_stride.extract(im)

        self.assertEqual(patch.shape, (16, 16, 1, 32, 32, 2))
        self.assertEqual(patch_stride.shape, (29, 29, 1, 32, 32, 2))
Ejemplo n.º 17
0
    def test_extract_num_memmap(self):
        im = np.load('data/img_4d.npy', mmap_mode="r")

        patch_shape = (9, 32, 32, 3)
        num = 8

        pe_num_seq = PatchExtractor(patch_shape, num=num, rand=False)
        patch_num_seq = pe_num_seq.extract(im)

        pe_num_rand = PatchExtractor(patch_shape, num=num, rand=True)
        patch_num_rand = pe_num_rand.extract(im)

        self.assertEqual(patch_num_seq.ndim, 1 + im.ndim)
        self.assertEqual(patch_num_seq.shape[0], num)
        self.assertEqual(patch_num_rand.ndim, 1 + im.ndim)
        self.assertEqual(patch_num_rand.shape[0], num)
Ejemplo n.º 18
0
    def test_extract_num(self):
        im = np.asarray(Image.open('data/img_color.png'))

        patch_shape = (32, 32, 2)
        num = 8

        pe_seq = PatchExtractor(patch_shape, num=num, rand=False)
        patch_seq = pe_seq.extract(im)

        pe_rand = PatchExtractor(patch_shape, num=num, rand=True)
        patch_rand = pe_rand.extract(im)

        self.assertEqual(patch_seq.ndim, 1 + im.ndim)
        self.assertEqual(patch_seq.shape[0], num)
        self.assertEqual(patch_rand.ndim, 1 + im.ndim)
        self.assertEqual(patch_rand.shape[0], num)
Ejemplo n.º 19
0
  def calculate_feature(self, dataDir='../features/'):
    patchEx1 = PatchExtractor(self.start, self.start, self.movePosition, self.isblack)
    patchEx2 = PatchExtractor(self.start, self.move, self.movePosition, self.isblack)

    patchEx1.setPatchSize(4)
    patchEx2.setPatchSize(4)
    data41 = patchEx1.calculate_feature()
    data42 = patchEx2.calculate_feature()

    patchEx1.setPatchSize(5)
    patchEx2.setPatchSize(5)
    data51 = patchEx1.calculate_feature()
    data52 = patchEx2.calculate_feature()

    '''patchEx1.setPatchSize(6)
    patchEx2.setPatchSize(6)
    data61 = patchEx1.calculate_feature()
    data62 = patchEx2.calculate_feature()'''

    f = open(dataDir+'dictionary4.txt')
    dictionaryData = f.read()
    f.close()
    dictionary = pickle.loads(dictionaryData)
    data1 = dictionary.transform(data41)
    data2 = dictionary.transform(data42)
    data = data2 - data1
    features4 = np.amax(data, axis=0)

    f = open(dataDir+'dictionary5.txt')
    dictionaryData = f.read()
    f.close()
    dictionary = pickle.loads(dictionaryData)
    data1 = dictionary.transform(data51)
    data2 = dictionary.transform(data52)
    data = data2 - data1
    features5 = np.amax(data, axis=0)

    '''f = open('features/dictionary6.txt')
    dictionaryData = f.read()
    f.close()
    dictionary = pickle.loads(dictionaryData)
    data1 = dictionary.transform(data61)
    data2 = dictionary.transform(data62)
    data = data2 - data1
    features6 = np.amax(data, axis=0)'''

    return list(features4) + list(features5)# + list(features6)