def test_keep_size(self): key = "img" zoom_fn = Zoomd(key, zoom=0.6, keep_size=True) zoomed = zoom_fn({key: self.imt[0]}) self.assertTrue(np.array_equal(zoomed[key].shape, self.imt.shape[1:])) zoom_fn = Zoomd(key, zoom=1.3, keep_size=True) zoomed = zoom_fn({key: self.imt[0]}) self.assertTrue(np.array_equal(zoomed[key].shape, self.imt.shape[1:]))
def test_keep_size(self): key = "img" zoom_fn = Zoomd(key, zoom=0.6, keep_size=True, padding_mode="constant", constant_values=2) for p in TEST_NDARRAYS_ALL: zoomed = zoom_fn({key: p(self.imt[0])}) np.testing.assert_array_equal(zoomed[key].shape, self.imt.shape[1:]) zoom_fn = Zoomd(key, zoom=1.3, keep_size=True) zoomed = zoom_fn({key: self.imt[0]}) self.assertTrue( np.array_equal(zoomed[key].shape, self.imt.shape[1:]))
def test_gpu_zoom(self, _, zoom, order, mode, cval, prefilter): key = "img" if importlib.util.find_spec("cupy"): zoom_fn = Zoomd( key, zoom=zoom, interp_order=order, mode=mode, cval=cval, prefilter=prefilter, use_gpu=True, keep_size=False, ) zoomed = zoom_fn({key: self.imt[0]}) expected = list() for channel in self.imt[0]: expected.append( zoom_scipy(channel, zoom=zoom, mode=mode, order=order, cval=cval, prefilter=prefilter)) expected = np.stack(expected).astype(np.float32) self.assertTrue(np.allclose(expected, zoomed[key]))
def test_correct_results(self, zoom, order, mode, cval, prefilter, use_gpu, keep_size): key = "img" zoom_fn = Zoomd( key, zoom=zoom, interp_order=order, mode=mode, cval=cval, prefilter=prefilter, use_gpu=use_gpu, keep_size=keep_size, ) zoomed = zoom_fn({key: self.imt[0]}) expected = list() for channel in self.imt[0]: expected.append( zoom_scipy(channel, zoom=zoom, mode=mode, order=order, cval=cval, prefilter=prefilter)) expected = np.stack(expected).astype(np.float32) self.assertTrue(np.allclose(expected, zoomed[key]))
def test_correct_results(self, zoom, mode, keep_size): key = "img" zoom_fn = Zoomd(key, zoom=zoom, mode=mode, keep_size=keep_size,) zoomed = zoom_fn({key: self.imt[0]}) _order = 0 if mode.endswith("linear"): _order = 1 expected = list() for channel in self.imt[0]: expected.append(zoom_scipy(channel, zoom=zoom, mode="nearest", order=_order, prefilter=False)) expected = np.stack(expected).astype(np.float32) np.testing.assert_allclose(expected, zoomed[key], atol=1.0)
def _zoom(x, scale: uniform = 1.0): zoom = Zoomd(keys=['image'], zoom=scale, order=0, mode='constant', cval=0, prefilter=True, use_gpu=False, keep_size=True) data_dict = {'image': x.data} zoom_dict = zoom(data_dict) x = zoom_dict['image'][0] x = torch.Tensor(x[None]) return x
def test_correct_results(self, zoom, mode, keep_size): key = "img" zoom_fn = Zoomd(key, zoom=zoom, mode=mode, keep_size=keep_size) for p in TEST_NDARRAYS: zoomed = zoom_fn({key: p(self.imt[0])}) _order = 0 if mode.endswith("linear"): _order = 1 expected = [ zoom_scipy(channel, zoom=zoom, mode="nearest", order=_order, prefilter=False) for channel in self.imt[0] ] expected = np.stack(expected).astype(np.float32) assert_allclose(zoomed[key], p(expected), atol=1.0)
RandRotate90d(KEYS, prob=1, spatial_axes=(1, 2)), )) TESTS.append( ("Spacingd 3d", "3D", 3e-2, Spacingd(KEYS, [0.5, 0.7, 0.9], diagonal=False))) TESTS.append(("Resized 2d", "2D", 2e-1, Resized(KEYS, [50, 47]))) TESTS.append(("Resized 3d", "3D", 5e-2, Resized(KEYS, [201, 150, 78]))) TESTS.append(( "Zoomd 1d", "1D odd", 0, Zoomd(KEYS, zoom=2, keep_size=False), )) TESTS.append(( "Zoomd 2d", "2D", 2e-1, Zoomd(KEYS, zoom=0.9), )) TESTS.append(( "Zoomd 3d", "3D", 3e-2, Zoomd(KEYS, zoom=[2.5, 1, 3], keep_size=False), ))
def test_invalid_inputs(self, _, zoom, mode, raises): key = "img" with self.assertRaises(raises): zoom_fn = Zoomd(key, zoom=zoom, mode=mode) zoom_fn({key: self.imt[0]})
def test_invalid_inputs(self, _, zoom, mode, raises): key = "img" for p in TEST_NDARRAYS_ALL: with self.assertRaises(raises): zoom_fn = Zoomd(key, zoom=zoom, mode=mode) zoom_fn({key: p(self.imt[0])})
overwrite=True))) TESTS.append(( "RandLambdad 3d", "3D", 5e-2, False, RandLambdad(KEYS, func=lambda x: x * 10, inv_func=lambda x: x / 10, overwrite=True, prob=0.5), )) TESTS.append( ("Zoomd 1d", "1D odd", 0, True, Zoomd(KEYS, zoom=2, keep_size=False))) TESTS.append(("Zoomd 2d", "2D", 2e-1, True, Zoomd(KEYS, zoom=0.9))) TESTS.append(("Zoomd 3d", "3D", 3e-2, True, Zoomd(KEYS, zoom=[2.5, 1, 3], keep_size=False))) TESTS.append(("RandZoom 3d", "3D", 9e-2, True, RandZoomd(KEYS, 1, [0.5, 0.6, 0.9], [1.1, 1, 1.05], keep_size=True))) TESTS.append(("RandRotated, prob 0", "2D", 0, True, RandRotated(KEYS, prob=0, dtype=np.float64))) TESTS.append((
def test_invalid_inputs(self, _, zoom, order, raises): key = "img" with self.assertRaises(raises): zoom_fn = Zoomd(key, zoom=zoom, interp_order=order) zoom_fn({key: self.imt[0]})