# Image Crop Implementation with CV2
*author: David Wang*
## Description
An image crop operator implementation with OpenCV.
## Code Example
Crop the face from 'avengers.jpg'.
```
from towhee import pipe, ops, DataCollection
p = (
pipe.input('path')
.map('path', 'img', ops.image_decode())
.map('img', ('box','score'), ops.face_detection.retinaface())
.map(('img', 'box'), 'crop', ops.image_crop(clamp = True))
.output('img', 'crop')
)
DataCollection(p('./avengers.jpg')).show()
```
## Factory Constructor
Create the operator via the following factory method
***image_crop(clamp = True)***
**Parameters:**
**clamp:** *bool*
If set True, coordinates of bounding boxes would be clamped into image size.
## Interface
An image crop operator takes an image and bounding boxes as input. It cropes the image into ROIs(region of interest).
**Parameters:**
**img:** *towhee.types.Image (a sub-class of numpy.ndarray)*
The image need to be cropped.
**bboxes:** *numpy.ndarray*
The nx4 numpy tensor for n bounding boxes need to crop, each row is formatted as (x1, y1, x2, y2).
**Returns**: *towhee.types.Image (a sub-class of numpy.ndarray)*
The cropped image data as numpy.ndarray.