acl.himpi.vpc_crop_resize_make_border

C Prototype

hi_s32 hi_mpi_vpc_crop_resize_make_border(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_crop_resize_border_region crop_resize_make_border_info[], hi_u32 count, hi_u32 *task_id, hi_s32 milli_sec);

Python Function

task_id, ret = acl.himpi.vpc_crop_resize_make_border(chn, source_pic, crop_resize_make_border_info, count, milli_sec)

Function Usage

Crops one or more ROIs from an image, resizes the crop ROIs, and then pads each ROI based on the specific type to form one or more destination images. This API is mainly used for resizing with the aspect ratio preserved. This API is asynchronous.

The Atlas 200/300/500 Inference Product does not support this API in the current version.

The Atlas Training Series Product does not support this API in the current version.

Input Description

chn: int, image processing channel ID.

source_pic: dict, original image information. For details, see hi_vpc_pic_info. For details about related restrictions, see #EN-US_TOPIC_0000002128076952/section1676152117452.

crop_resize_make_border_info: list for crop, resize, and border making information. You need to set the buffer address of the destination image for storing this information. For details, see hi_vpc_crop_resize_border_region.

If the data of multiple padding results points to the same buffer address, the data of the later result overwrites that of the previous one. Consequently, the output image is inconsistent with the desired image.

Currently, only the HI_BORDER_CONSTANT and HI_BORDER_REPLICATE types are supported, which allow padding to 4096 x 4096. The length of the crop_resize_make_border_info array must be the same as that of the count value.

count: int, number of crop, resize, and padding ROIs. Must be in the range of [1, 256].

milli_sec: int, timeout interval (ms).
  • -1: blocking mode.
  • 0: non-blocking mode.
  • > 0: timeout interval (timeout mode). The timeout interval varies with the operating system. The deviation is generally within a time slice of an operating system. For example, if the time slice of an operating system is 4 ms and the value of milli_sec is set to 1, the actual timeout interval ranges from 1 ms to 5 ms. When the CPU load is high, the timeout interval may fluctuate.

Return Value

ret: int, error code.

task_id: task ID, used to identify a task.