![]() |
Extracts crops from the input image tensor and resizes them.
Aliases:
tf.image.crop_and_resize(
image,
boxes,
box_ind=None,
crop_size=None,
method='bilinear',
extrapolation_value=0,
name=None,
box_indices=None
)
Extracts crops from the input image tensor and resizes them using bilinear
sampling or nearest neighbor sampling (possibly with aspect ratio change) to a
common output size specified by crop_size
. This is more general than the
crop_to_bounding_box
op which extracts a fixed size slice from the input image
and does not allow resizing or aspect ratio change.
Returns a tensor with crops
from the input image
at positions defined at the
bounding box locations in boxes
. The cropped boxes are all resized (with
bilinear or nearest neighbor interpolation) to a fixed
size = [crop_height, crop_width]
. The result is a 4-D tensor
[num_boxes, crop_height, crop_width, depth]
. The resizing is corner aligned.
In particular, if boxes = [[0, 0, 1, 1]]
, the method will give identical
results to using tf.image.resize_bilinear()
or
tf.image.resize_nearest_neighbor()
(depends on the method
argument) with
align_corners=True
.
Args:
image
: ATensor
. Must be one of the following types:uint8
,uint16
,int8
,int16
,int32
,int64
,half
,float32
,float64
. A 4-D tensor of shape[batch, image_height, image_width, depth]
. Bothimage_height
andimage_width
need to be positive.boxes
: ATensor
of typefloat32
. A 2-D tensor of shape[num_boxes, 4]
. Thei
-th row of the tensor specifies the coordinates of a box in thebox_ind[i]
image and is specified in normalized coordinates[y1, x1, y2, x2]
. A normalized coordinate value ofy
is mapped to the image coordinate aty * (image_height - 1)
, so as the[0, 1]
interval of normalized image height is mapped to[0, image_height - 1]
in image height coordinates. We do allowy1
>y2
, in which case the sampled crop is an up-down flipped version of the original image. The width dimension is treated similarly. Normalized coordinates outside the[0, 1]
range are allowed, in which case we useextrapolation_value
to extrapolate the input image values.box_ind
: ATensor
of typeint32
. A 1-D tensor of shape[num_boxes]
with int32 values in[0, batch)
. The value ofbox_ind[i]
specifies the image that thei
-th box refers to.crop_size
: ATensor
of typeint32
. A 1-D tensor of 2 elements,size = [crop_height, crop_width]
. All cropped image patches are resized to this size. The aspect ratio of the image content is not preserved. Bothcrop_height
andcrop_width
need to be positive.method
: An optionalstring
from:"bilinear", "nearest"
. Defaults to"bilinear"
. A string specifying the sampling method for resizing. It can be either"bilinear"
or"nearest"
and default to"bilinear"
. Currently two sampling methods are supported: Bilinear and Nearest Neighbor.extrapolation_value
: An optionalfloat
. Defaults to0
. Value used for extrapolation, when applicable.name
: A name for the operation (optional).
Returns:
A Tensor
of type float32
.