def test_normalize_norm_image(): pixels = np.ones((120, 120, 3)) pixels[..., 0] = 0.5 pixels[..., 1] = 0.2345 image = Image(pixels) image.normalize_norm_inplace() assert_allclose(np.mean(image.pixels), 0, atol=1e-10) assert_allclose(np.linalg.norm(image.pixels), 1)
def test_normalize_norm_image_per_channel(): pixels = np.random.randn(120, 120, 3) pixels[..., 1] *= 17 pixels[..., 0] += -114 pixels[..., 2] /= 30 image = Image(pixels) image.normalize_norm_inplace(mode='per_channel') assert_allclose( np.mean(image.as_vector(keep_channels=True), axis=0), 0, atol=1e-10) assert_allclose( np.linalg.norm(image.as_vector(keep_channels=True), axis=0), 1)
def test_normalize_norm_image_per_channel(): pixels = np.random.randn(120, 120, 3) pixels[..., 1] *= 17 pixels[..., 0] += -114 pixels[..., 2] /= 30 image = Image(pixels) image.normalize_norm_inplace(mode='per_channel') assert_allclose(np.mean(image.as_vector(keep_channels=True), axis=0), 0, atol=1e-10) assert_allclose( np.linalg.norm(image.as_vector(keep_channels=True), axis=0), 1)
def build_parts_image(image, centres, parts_shape, offsets=np.array([[0, 0]]), normalize_parts=False): # extract patches parts = image.extract_patches(PointCloud(np.round(centres.points)), np.array(parts_shape), offsets) # build parts image # img.pixels: n_centres x n_offsets x n_channels x height x width img = Image(parts) if normalize_parts: # normalize parts if required img.normalize_norm_inplace(mode='per_channel') return img