cropAndResize function
Extracts crops from the input image variable and resizes them using bilinear sampling or nearest neighbor sampling (possibly with aspect ratio change) to a common output size specified by crop_size.
Returns a variable 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(supposing NHWC format).
Arguments:
- image: A 4-D variable of shape
batch, image_height, image_width, depth(supposing NHWC format). Both image_height and image_width need to be positive. - boxes: A 2-D variable of shape
num_boxes, 4. The i-th row of the variable specifies the coordinates of a box in the box_indiimage and is specified in normalized coordinatesy1, x1, y2, x2. A normalized coordinate value of y is mapped to the image coordinate at y * (image_height - 1), so as the0, 1interval of normalized image height is mapped to0, image_height - 1in image height coordinates. We do allow y1 > 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 the0, 1range are allowed, in which case we use extrapolation_value to extrapolate the input image values. - box_ind: A 1-D variable of shape
num_boxeswith int values in [0, batch). The value of box_indispecifies the image that the i-th box refers to. - crop_size: A 1-D variable 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. Both crop_height and crop_width need to be positive. - method: A enum, either CropAndResizeMethod_NEAREST, or CropAndResizeMethod_BILINEAR, default to CropAndResizeMethod_BILINEAR.
- extrapolation_value: Value used for extrapolation, when applicable.
Returns:
- Output: A 4-D variable of shape
num_boxes, crop_height, crop_width, depth(supposing NHWC format).
Implementation
VARP cropAndResize(
VARP image,
VARP boxes,
VARP boxInd,
VARP cropSize,
InterpolationMethod method, {
double extrapolationValue = 0.0,
}) => VARP.fromPointer(
C.mnn_expr_CropAndResize(
image.ptr,
boxes.ptr,
boxInd.ptr,
cropSize.ptr,
method.value,
extrapolationValue,
),
);