示例#1
0
def transform(image: tf.Tensor, transforms) -> tf.Tensor:
  """Prepares input data for `image_ops.transform`."""
  original_ndims = tf.rank(image)
  transforms = tf.convert_to_tensor(transforms, dtype=tf.float32)
  if transforms.shape.rank == 1:
    transforms = transforms[None]
  image = to_4d(image)
  image = image_ops.transform(
      images=image, transforms=transforms, interpolation='nearest')
  return from_4d(image, original_ndims)
示例#2
0
def rotate(inputs):
  """rotate image."""
  inputs_shape = tf.shape(inputs)
  batch_size = inputs_shape[0]
  img_hd = tf.cast(inputs_shape[1], tf.float32)
  img_wd = tf.cast(inputs_shape[2], tf.float32)
  min_angle = LOWER * 2. * np.pi
  max_angle = UPPER * 2. * np.pi
  angles = tf.random.uniform(
      shape=[batch_size], minval=min_angle, maxval=max_angle)
  return image_preprocessing.transform(
      inputs, image_preprocessing.get_rotation_matrix(angles, img_hd, img_wd))
示例#3
0
def zoom(inputs):
  """zoom image."""
  inputs_shape = tf.shape(inputs)
  batch_size = inputs_shape[0]
  img_hd = tf.cast(inputs_shape[1], tf.float32)
  img_wd = tf.cast(inputs_shape[2], tf.float32)
  height_zoom = tf.random.uniform(
      shape=[batch_size, 1], minval=1. + LOWER, maxval=1. + UPPER)
  width_zoom = tf.random.uniform(
      shape=[batch_size, 1], minval=1. + LOWER, maxval=1. + UPPER)
  zooms = tf.cast(
      tf.concat([width_zoom, height_zoom], axis=1), dtype=tf.float32)
  return image_preprocessing.transform(
      inputs, image_preprocessing.get_zoom_matrix(zooms, img_hd, img_wd))