tensorflow:: ops:: SampleDistortedBoundingBox
  #include <image_ops.h>
  Generate a single randomly distorted bounding box for an image.
Summary
Bounding box annotations are often supplied in addition to ground-truth labels in image recognition or object localization tasks. A common technique for training such a system is to randomly distort an image while preserving its content, i.e. data augmentation. This Op outputs a randomly distorted localization of an object, i.e. bounding box, given an image_size, bounding_boxes and a series of constraints.
The output of this Op is a single bounding box that may be used to crop the original image. The output is returned as 3 tensors: begin, size and bboxes. The first 2 tensors can be fed directly into tf.slice to crop the image. The latter may be supplied to tf.image.draw_bounding_boxes to visualize what the bounding box looks like.
Bounding boxes are supplied and returned as [y_min, x_min, y_max, x_max]. The bounding box coordinates are floats in [0.0, 1.0] relative to the width and height of the underlying image.
For example,
    # Generate a single distorted bounding box.
    begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
        tf.shape(image),
        bounding_boxes=bounding_boxes)
    # Draw the bounding box in an image summary.
    image_with_box = tf.image.draw_bounding_boxes(tf.expand_dims(image, 0),
                                                  bbox_for_draw)
    tf.summary.image('images_with_box', image_with_box)
    # Employ the bounding box to distort the image.
    distorted_image = tf.slice(image, begin, size)Note that if no bounding box information is available, setting use_image_if_no_bounding_boxes = true will assume there is a single implicit bounding box covering the whole image. If use_image_if_no_bounding_boxes is false and no bounding boxes are supplied, an error is raised.
Arguments:
- scope: A Scope object
 - image_size: 1-D, containing 
[height, width, channels]. - bounding_boxes: 3-D with shape 
[batch, N, 4]describing the N bounding boxes associated with the image. 
Optional attributes (see Attrs):
- seed: If either 
seedorseed2are set to non-zero, the random number generator is seeded by the givenseed. Otherwise, it is seeded by a random seed. - seed2: A second seed to avoid seed collision.
 - min_object_covered: The cropped area of the image must contain at least this fraction of any bounding box supplied. The value of this parameter should be non-negative. In the case of 0, the cropped area does not need to overlap any of the bounding boxes supplied.
 - aspect_ratio_range: The cropped area of the image must have an aspect ratio = width / height within this range.
 - area_range: The cropped area of the image must contain a fraction of the supplied image within this range.
 - max_attempts: Number of attempts at generating a cropped region of the image of the specified constraints. After 
max_attemptsfailures, return the entire image. - use_image_if_no_bounding_boxes: Controls behavior if no bounding boxes supplied. If true, assume an implicit bounding box covering the whole input. If false, raise an error.
 
Returns:
Outputbegin: 1-D, containing[offset_height, offset_width, 0]. Provide as input totf.slice.Outputsize: 1-D, containing[target_height, target_width, -1]. Provide as input totf.slice.Outputbboxes: 3-D with shape[1, 1, 4]containing the distorted bounding box. Provide as input totf.image.draw_bounding_boxes.
        Constructors and Destructors | 
    |
|---|---|
        SampleDistortedBoundingBox(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes)
         | 
    |
        SampleDistortedBoundingBox(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs)
         | 
    
        Public attributes | 
    |
|---|---|
        bboxes
       | 
      |
        begin
       | 
      |
        operation
       | 
      |
        size
       | 
      |
        Public static functions | 
    |
|---|---|
        AreaRange(const gtl::ArraySlice< float > & x)
       | 
      |
        AspectRatioRange(const gtl::ArraySlice< float > & x)
       | 
      |
        MaxAttempts(int64 x)
       | 
      |
        MinObjectCovered(float x)
       | 
      |
        Seed(int64 x)
       | 
      |
        Seed2(int64 x)
       | 
      |
        UseImageIfNoBoundingBoxes(bool x)
       | 
      |
        Structs | 
    |
|---|---|
| 
        tensorflow:: | 
      
         Optional attribute setters for SampleDistortedBoundingBox.  | 
    
Public attributes
bboxes
::tensorflow::Output bboxes
begin
::tensorflow::Output begin
operation
Operation operation
size
::tensorflow::Output size
Public functions
SampleDistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
SampleDistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs )
Public static functions
AreaRange
Attrs AreaRange( const gtl::ArraySlice< float > & x )
AspectRatioRange
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
MaxAttempts
Attrs MaxAttempts( int64 x )
MinObjectCovered
Attrs MinObjectCovered( float x )
Seed
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
UseImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )