`tf.image.crop_to_bounding_box()` assumes `tf.int32` arguments, but not documented as such
Hi @agkphysics ,

Thanks for reporting this. Yes I have tested the API **`tf.image.crop_to_bounding_box`** with all `tf.dtypes` `tf.uint8,tf.uint16,tf.uint32,tf.uint64,tf.int32,tf.int64, tf.float32, tf.float64,tf.bfloat16,tf.float16`

Only `tf.int32` is acceptable dtype for the arguments `offset_height, offset_width, target_height, target_width`. This is not documented well.

Also I have tested with **Python** `int` and `float` it's only works with python int but not float.

All the testing can be found in attached [gist](https://colab.sandbox.google.com/gist/SuryanarayanaY/953076ea1179b3db0a0ef0fc518a84a3/61644.ipynb) here.

I may raise a PR for documenting this.

Thanks!
### Issue type

Documentation Feature Request

### Have you reproduced the bug with TensorFlow Nightly?

No

### Source

binary

### TensorFlow version

2.13.0

### Custom code

No

### OS platform and distribution

Linux Ubuntu 22.04 (WSL 2)

### Mobile device

_No response_

### Python version

3.10

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

`tf.image.crop_to_bounding_box()` implicitly assumes that the target width and height are `tf.int32`, but this is not documented anywhere. The cause for this is using `tf.shape()` which has the default `dtype` of `tf.int32`, in a stack operation:
https://github.com/tensorflow/tensorflow/blob/c9fafed9bc8cb0238a775fd4a0680e648c06b5b6/tensorflow/python/ops/image_ops_impl.py#L1250-L1254

### Standalone code to reproduce the issue

```python
import tensorflow as tf

image = tf.zeros([1000, 2000, 3], dtype=tf.uint8)
offset = tf.constant([0, 0], dtype=tf.int64)
size = tf.constant([900, 1500], dtype=tf.int64)
tf.image.crop_to_bounding_box(image, offset[0], offset[1], size[0], size[1])
```


### Relevant log output

```shell
Traceback (most recent call last):
  File "/.../test.py", line 6, in <module>
    tf.image.crop_to_bounding_box(image, offset[0], offset[1], size[0], size[1])
  File "/.../.venv/lib/python3.10/site-packages/tensorflow/python/util/traceback_utils.py", line 153, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/.../.venv/lib/python3.10/site-packages/tensorflow/python/framework/ops.py", line 6656, in raise_from_not_ok_status
    raise core._status_to_exception(e) from None  # pylint: disable=protected-access
tensorflow.python.framework.errors_impl.InvalidArgumentError: cannot compute Pack as input #1(zero-based) was expected to be a int32 tensor but is a int64 tensor [Op:Pack] name: stack
```
