示例#1
0
 def test_with_movement(self):
     transform = RandomMotion(num_transforms=1)
     transformed = transform(self.sample_subject)
     self.assertTensorNotEqual(
         self.sample_subject.t1.data,
         transformed.t1.data,
     )
示例#2
0
 def test_no_movement(self):
     transform = RandomMotion(degrees=0, translation=0, num_transforms=1)
     transformed = transform(self.sample_subject)
     self.assertTensorAlmostEqual(
         self.sample_subject.t1.data,
         transformed.t1.data,
     )
示例#3
0
def simulate_artefacts(sample, artefacts=(0, 0, 0, 0)):
    transforms = []
    if artefacts[0] == 1:
        if random.random() < 0.5:
            degrees = (5, random.random() * 10 + 5)
        else:
            degrees = (-(random.random() * 10 + 5), -5)
        if random.random() < 0.5:
            translation = (5, random.random() * 10 + 5)
        else:
            translation = (-(random.random() * 10 + 5), -5)
        transforms.append(
            RandomMotion(degrees=degrees,
                         translation=translation,
                         num_transforms=random.randint(2, 15)))
    elif artefacts[1] == 1:
        transforms.append(
            RandomGhosting(num_ghosts=(2, 10), intensity=(0.5, 0.75)))
    elif artefacts[2] == 1:
        transforms.append(RandomBlur(std=(0.5, 2.)))
    elif artefacts[3] == 1:
        transforms.append(RandomNoise(std=(0.01, 0.05)))
    transforms = Compose(transforms)
    return transforms(sample)
示例#4
0
 def test_bad_num_transforms_value(self):
     with self.assertRaises(ValueError):
         RandomMotion(num_transforms=0)
示例#5
0
 def test_wrong_image_interpolation_value(self):
     with self.assertRaises(AttributeError):
         RandomMotion(image_interpolation='wrong')
示例#6
0
 def test_wrong_image_interpolation_type(self):
     with self.assertRaises(TypeError):
         RandomMotion(image_interpolation=0)
示例#7
0
 def test_wrong_translation_type(self):
     with self.assertRaises(ValueError):
         RandomMotion(translation='wrong')
示例#8
0
 def test_negative_translation(self):
     with self.assertRaises(ValueError):
         RandomMotion(translation=-10)
示例#9
0
 def test_wrong_degrees_type(self):
     with self.assertRaises(ValueError):
         RandomMotion(degrees='wrong')
示例#10
0
 def test_negative_degrees(self):
     with self.assertRaises(ValueError):
         RandomMotion(degrees=-10)
示例#11
0
 def test_with_movement(self):
     transform = RandomMotion(num_transforms=1)
     transformed = transform(self.sample)
     with self.assertRaises(AssertionError):
         assert_array_equal(self.sample.t1.data, transformed.t1.data)
示例#12
0
 def test_no_movement(self):
     transform = RandomMotion(degrees=0, translation=0, num_transforms=1)
     transformed = transform(self.sample)
     assert_array_equal(self.sample.t1.data, transformed.t1.data)