cropAndResize function

VARP cropAndResize(
  1. VARP image,
  2. VARP boxes,
  3. VARP boxInd,
  4. VARP cropSize,
  5. InterpolationMethod method, {
  6. double extrapolationValue = 0.0,
})

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_indi image and is specified in normalized coordinates y1, x1, y2, x2. A normalized coordinate value of y is mapped to the image coordinate at y * (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 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 the 0, 1 range are allowed, in which case we use extrapolation_value to extrapolate the input image values.
  • box_ind: A 1-D variable of shape num_boxes with int values in [0, batch). The value of box_indi specifies 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,
  ),
);