def test_multiplicative_noise_rgb(image): dtype = image.dtype m = 0.5 aug = A.MultiplicativeNoise(m, p=1) result = aug(image=image)["image"] image = F.clip(image * m, dtype, F.MAX_VALUES_BY_DTYPE[dtype]) assert np.allclose(image, result) aug = A.MultiplicativeNoise(elementwise=True, p=1) params = aug.get_params_dependent_on_targets({"image": image}) mul = params["multiplier"] assert mul.shape == image.shape[:2] + (1,) result = aug.apply(image, mul) image = F.clip(image.astype(np.float32) * mul, dtype, F.MAX_VALUES_BY_DTYPE[dtype]) assert np.allclose(image, result) aug = A.MultiplicativeNoise(per_channel=True, p=1) params = aug.get_params_dependent_on_targets({"image": image}) mul = params["multiplier"] assert mul.shape == (3,) result = aug.apply(image, mul) image = F.clip(image.astype(np.float32) * mul, dtype, F.MAX_VALUES_BY_DTYPE[dtype]) assert np.allclose(image, result) aug = A.MultiplicativeNoise(elementwise=True, per_channel=True, p=1) params = aug.get_params_dependent_on_targets({"image": image}) mul = params["multiplier"] assert mul.shape == image.shape result = aug.apply(image, mul) image = F.clip(image.astype(np.float32) * mul, image.dtype, F.MAX_VALUES_BY_DTYPE[image.dtype]) assert np.allclose(image, result)
def test_multiply_uint8_optimized(): image = np.random.randint(0, 256, [256, 320], np.uint8) m = 1.5 result = F._multiply_uint8_optimized(image, [m]) tmp = F.clip(image * m, image.dtype, F.MAX_VALUES_BY_DTYPE[image.dtype]) assert np.all(tmp == result) image = np.random.randint(0, 256, [256, 320, 3], np.uint8) result = F._multiply_uint8_optimized(image, [m]) tmp = F.clip(image * m, image.dtype, F.MAX_VALUES_BY_DTYPE[image.dtype]) assert np.all(tmp == result) m = np.array([1.5, 0.75, 1.1]) image = np.random.randint(0, 256, [256, 320, 3], np.uint8) result = F._multiply_uint8_optimized(image, m) tmp = F.clip(image * m, image.dtype, F.MAX_VALUES_BY_DTYPE[image.dtype]) assert np.all(tmp == result)
def test_clip_float(): img = np.array( [[-0.02, 0], [0.5, 2.2]], dtype=np.float32) expected = np.array( [[0, 0], [0.5, 1.0]], dtype=np.float32) clipped = F.clip(img, dtype=np.float32, maxval=1.0) assert_array_almost_equal_nulp(clipped, expected)
def test_clip(): img = np.array( [[-300, 0], [100, 400]], dtype=np.float32) expected = np.array( [[0, 0], [100, 255]], dtype=np.float32) clipped = F.clip(img, dtype=np.uint8, maxval=255) assert np.array_equal(clipped, expected)
def test_clip(): img = np.array( [[-300, 0], [100, 400]], dtype=np.float32) expected = np.array( [[0, 0], [100, 255]], dtype=np.float32) clipped = F.clip(img, dtype=np.uint8, maxval=255) assert np.array_equal(clipped, expected)