def random_channel_shift(image, label, channel_shift_range): if np.ndim(label) == 2: label = np.expand_dims(label, axis=-1) assert np.ndim(label) == 3 if channel_shift_range > 0: channel_shift_intensity = np.random.uniform(-channel_shift_range, channel_shift_range) image = keras_image.apply_channel_shift(image, channel_shift_intensity, channel_axis=2) return image, label
def apply_transform(self, x, transform_parameters): """Applies a transformation to an image according to given parameters. # Arguments x: 3D tensor, single image. transform_parameters: Dictionary with string - parameter pairs describing the transformation. Currently, the following parameters from the dictionary are used: - `'theta'`: Float. Rotation angle in degrees. - `'tx'`: Float. Shift in the x direction. - `'ty'`: Float. Shift in the y direction. - `'shear'`: Float. Shear angle in degrees. - `'zx'`: Float. Zoom in the x direction. - `'zy'`: Float. Zoom in the y direction. - `'flip_horizontal'`: Boolean. Horizontal flip. - `'flip_vertical'`: Boolean. Vertical flip. - `'channel_shift_intencity'`: Float. Channel shift intensity. - `'brightness'`: Float. Brightness shift intensity. # Returns A transformed version of the input (same shape). """ # x is a single image, so it doesn't have image number at index 0 img_row_axis = self.row_axis - 1 img_col_axis = self.col_axis - 1 img_channel_axis = self.channel_axis - 1 x = apply_affine_transform(x, transform_parameters.get('theta', 0), transform_parameters.get('tx', 0), transform_parameters.get('ty', 0), transform_parameters.get('shear', 0), transform_parameters.get('zx', 1), transform_parameters.get('zy', 1), row_axis=img_row_axis, col_axis=img_col_axis, channel_axis=img_channel_axis, fill_mode=self.fill_mode, cval=self.cval, order=self.interpolation_order) if transform_parameters.get('channel_shift_intensity') is not None: x = apply_channel_shift( x, transform_parameters['channel_shift_intensity'], img_channel_axis) if transform_parameters.get('flip_horizontal', False): x = flip_axis(x, img_col_axis) if transform_parameters.get('flip_vertical', False): x = flip_axis(x, img_row_axis) if transform_parameters.get('brightness') is not None: x = apply_brightness_shift(x, transform_parameters['brightness']) return x
def random_channel_shift(image, label, channel_shift_range): if np.ndim(label) == 2: label = np.expand_dims(label, axis=-1) assert np.ndim(label) == 3 if np.ndim(image) == 2: #need color image to triple grayscale image = np.stack((image, ) * 3, axis=2).astype('uint8') if channel_shift_range > 0: channel_shift_intensity = np.random.uniform(-channel_shift_range, channel_shift_range) image = keras_image.apply_channel_shift(image, channel_shift_intensity, channel_axis=2) image = image[:, :, 0] return image, label
def keras(self, img): img = keras.apply_channel_shift(img, intensity=100, channel_axis=2) return np.ascontiguousarray(img)
def keras(self, img): return keras.apply_channel_shift(img, intensity=100, channel_axis=2)
def keras(self, img): return keras.apply_channel_shift(img, intensity=100, channel_axis=2)