def test_to_float01(self): self.assert_all_close( media.to_float01(np.array([0, 1, 128, 254, 255], dtype=np.uint8)), [0 / 255, 1 / 255, 128 / 255, 254 / 255, 255 / 255]) self.assert_all_close( media.to_float01(np.array([0, 1, 128, 254, 65535], dtype=np.uint16)), [0 / 65535, 1 / 65535, 128 / 65535, 254 / 65535, 65535 / 65535]) a = np.array([0.0, 0.1, 0.5, 0.9, 1.0]) self.assertIs(media.to_float01(a), a) a = np.array([0.0, 0.1, 0.5, 0.9, 1.0], dtype=np.float32) self.assertIs(media.to_float01(a), a)
def test_resize_video(self, str_dtype, shape): dtype = np.dtype(str_dtype) def create_video(shape, num_images=5): video = media.moving_circle(shape[:2], num_images, dtype=dtype) return video.mean(axis=-1).astype(dtype) if len( shape) == 2 else video[..., :shape[2]] video = create_video(shape) self.assertEqual(video.dtype, dtype) new_shape = (17, 19) + shape[2:] new_video = media.resize_video(video, new_shape[:2]) self.assertEqual(new_video.dtype, dtype) expected_video = create_video(new_shape) self._check_similar(media.to_float01(new_video), media.to_float01(expected_video), max_rms=(0.0 if new_shape == shape else 0.07))
def test_resize_image(self, str_dtype, shape): dtype = np.dtype(str_dtype) def create_image(shape): image = media.color_ramp(shape[:2], dtype=dtype) return image.mean(axis=-1).astype(dtype) if len( shape) == 2 else image[..., :shape[2]] image = create_image(shape) self.assertEqual(image.dtype, dtype) new_shape = (17, 19) + shape[2:] new_image = media.resize_image(image, new_shape[:2]) self.assertEqual(new_image.dtype, dtype) expected_image = create_image(new_shape) atol = 0.0 if new_shape == shape else 0.015 self.assert_all_close(media.to_float01(new_image), media.to_float01(expected_image), atol=atol)