Beispiel #1
0
def adjust_contrast(images, contrast_factor):
    """Adjust contrast of RGB or grayscale images.

  This is a convenience method that converts an RGB image to float
  representation, adjusts its contrast, and then converts it back to the
  original data type. If several adjustments are chained it is advisable to
  minimize the number of redundant conversions.

  `images` is a tensor of at least 3 dimensions.  The last 3 dimensions are
  interpreted as `[height, width, channels]`.  The other dimensions only
  represent a collection of images, such as `[batch, height, width, channels].`

  Contrast is adjusted independently for each channel of each image.

  For each channel, this Op computes the mean of the image pixels in the
  channel and then adjusts each component `x` of each pixel to
  `(x - mean) * contrast_factor + mean`.

  Args:
    images: Images to adjust.  At least 3-D.
    contrast_factor: A float multiplier for adjusting contrast.

  Returns:
    The constrast-adjusted image or images.
  """
    with ops.op_scope([images, contrast_factor], None, "adjust_contrast") as name:
        # Remember original dtype to so we can convert back if needed
        orig_dtype = images.dtype
        flt_images = convert_image_dtype(images, dtypes.float32)

        # pylint: disable=protected-access
        adjusted = gen_image_ops._adjust_contrastv2(flt_images, contrast_factor=contrast_factor, name=name)
        # pylint: enable=protected-access

        return convert_image_dtype(adjusted, orig_dtype, saturate=True)
Beispiel #2
0
def random_contrast(image, contrast_factor):
    with tf.name_scope(None, 'adjust_contrast',
                       [image, contrast_factor]) as name:
        images = tf.convert_to_tensor(image, name='images')
        # Remember original dtype to so we can convert back if needed
        orig_dtype = images.dtype
        flt_images = tf.image.convert_image_dtype(images, tf.float32)
        # pylint: disable=protected-access
        adjusted = _adjust_contrastv2(flt_images,
                                      contrast_factor=contrast_factor,
                                      name=name)
        # pylint: enable=protected-access
        return tf.image.convert_image_dtype(adjusted,
                                            orig_dtype,
                                            saturate=True)
Beispiel #3
0
def adjust_contrast(images, contrast_factor):
  """Adjust contrast of RGB or grayscale images.

  This is a convenience method that converts an RGB image to float
  representation, adjusts its contrast, and then converts it back to the
  original data type. If several adjustments are chained it is advisable to
  minimize the number of redundant conversions.

  `images` is a tensor of at least 3 dimensions.  The last 3 dimensions are
  interpreted as `[height, width, channels]`.  The other dimensions only
  represent a collection of images, such as `[batch, height, width, channels].`

  Contrast is adjusted independently for each channel of each image.

  For each channel, this Op computes the mean of the image pixels in the
  channel and then adjusts each component `x` of each pixel to
  `(x - mean) * contrast_factor + mean`.

  Args:
    images: Images to adjust.  At least 3-D.
    contrast_factor: A float multiplier for adjusting contrast.

  Returns:
    The contrast-adjusted image or images.
  """
  with ops.name_scope(None, 'adjust_contrast',
                      [images, contrast_factor]) as name:
    images = ops.convert_to_tensor(images, name='images')
    # Remember original dtype to so we can convert back if needed
    orig_dtype = images.dtype
    flt_images = convert_image_dtype(images, dtypes.float32)

    # pylint: disable=protected-access
    adjusted = gen_image_ops._adjust_contrastv2(flt_images,
                                                contrast_factor=contrast_factor,
                                                name=name)
    # pylint: enable=protected-access

    return convert_image_dtype(adjusted, orig_dtype, saturate=True)