# tf.image.crop_to_bounding_box

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/ops/image_ops_impl.py#L1163-L1265) |

Crops an `image` to a specified bounding box.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.image.crop_to_bounding_box`](https://www.tensorflow.org/api_docs/python/tf/image/crop_to_bounding_box)

<br />

    tf.image.crop_to_bounding_box(
        image, offset_height, offset_width, target_height, target_width
    )

This op cuts a rectangular bounding box out of `image`. The top-left corner
of the bounding box is at `offset_height, offset_width` in `image`, and the
lower-right corner is at
`offset_height + target_height, offset_width + target_width`.

#### Example Usage:

    image = tf.constant(np.arange(1, 28, dtype=np.float32), shape=[3, 3, 3])
    image[:,:,0] # print the first channel of the 3-D tensor
    <tf.Tensor: shape=(3, 3), dtype=float32, numpy=
    array([[ 1.,  4.,  7.],
           [10., 13., 16.],
           [19., 22., 25.]], dtype=float32)>
    cropped_image = tf.image.crop_to_bounding_box(image, 0, 0, 2, 2)
    cropped_image[:,:,0] # print the first channel of the cropped 3-D tensor
    <tf.Tensor: shape=(2, 2), dtype=float32, numpy=
    array([[ 1.,  4.],
           [10., 13.]], dtype=float32)>

<br />

<br />

<br />

| ## Args ||
|---|---|
| `image` | 4-D `Tensor` of shape `[batch, height, width, channels]` or 3-D `Tensor` of shape `[height, width, channels]`. |
| `offset_height` | Vertical coordinate of the top-left corner of the bounding box in `image`. |
| `offset_width` | Horizontal coordinate of the top-left corner of the bounding box in `image`. |
| `target_height` | Height of the bounding box. |
| `target_width` | Width of the bounding box. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| If `image` was 4-D, a 4-D `Tensor` of shape `[batch, target_height, target_width, channels]`. If `image` was 3-D, a 3-D `Tensor` of shape `[target_height, target_width, channels]`. It has the same dtype with `image`. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | `image` is not a 3-D or 4-D `Tensor`. |
| `ValueError` | `offset_width < 0` or `offset_height < 0`. |
| `ValueError` | `target_width <= 0` or `target_height <= 0`. |
| `ValueError` | `width < offset_width + target_width` or `height < offset_height + target_height`. |

<br />