acl.himpi.vpc_equalize_hist
acl.himpi.vpc_pyrdown
| c函数原型 | hi_s32 hi_mpi_vpc_pyrdown(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic,hi_vpc_pic_info dest_pic[], hi_u32 filter_level, hi_s8 gaussian_filter[][5], hi_u16 divisor, hi_vpc_make_border_info make_border_info, hi_u32 *task_id, hi_s32 milli_sec); |
|---|---|
| Python函数 | task_id, ret = acl.himpi.vpc_pyrdown(chn, source_pic, dest_pic, filter_level, gaussian_filter, divisor, make_border_info, milli_sec) |
| 函数功能 | 对图像进行金字塔缩放,当前仅支持YUV400的图片格式。异步接口。 Atlas 200/500 A2推理产品,不支持该接口。 |
| 输入说明 | - chn:int,图片处理通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 - source_pic:输入图片信息。输入图片的分辨率最大支持2048*2048,仅支持YUV 400格式输入。根据filter_level,最小输入分辨率限制如下: - filter_level = 1,最小输入分辨率为20*12。 - filter_level = 2,最小输入分辨率为40*24。 - filter_level = 3,最小输入分辨率为80*48。 - filter_level = 4,最小输入分辨率为160*96。 - dest_pic:目标图片信息,该数组长度与filter_level参数值保持一致。 - dest_pic[0]保存的是原图宽高都缩小为1/2的图。 - dest_pic[1]保存的是原图宽高都缩小为1/4的图。 - dest_pic[2]保存的是原图宽高都缩小为1/8的图。 - dest_pic[3]保存的是原图宽高都缩小为1/16的图。 - filter_level:参数有效范围为[1, 4],指定金字塔图像层数以及图像数量。 - gaussian_filter:高斯滤波参数,需传入5 * 5的列表,可通过传入“None”使用默认值,具体参见如下: text<br> gaussian_filter = [<br> [1, 4, 6, 4, 1],<br> [4, 16, 24, 16, 4],<br> [6, 24, 36, 24, 6],<br> [4, 16, 24, 16, 4],<br> [1, 4, 6, 4, 1]<br> ]<br> - divisor:滤波器除数,必须是2的幂次方。 - make_border_info:边界填充信息。填充固定填充2个像素,支持的填充类型为:HI_BORDER_CONSTANT、HI_BOARD_REPLICATE和HI_BOARD_REFLECT。 - milli_sec:超时时间配置,单位是毫秒,取值范围如下。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 - task_id:任务分配的ID,用来区分任务。 |
父主题: VPC图像处理接口
acl.himpi.vpc_calc_hist
note
须知
此接口后续版本会废弃,请使用acl.himpi.vpc_calc_hist_v2接口。
| c函数原型 | hi_s32 hi_mpi_vpc_calc_hist(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_histogram_config *hist_config, hi_u32 *task_id, hi_s32 milli_sec); |
|---|---|
| Python函数 | hist_config, task_id, ret = acl.himpi.vpc_calc_hist(chn, source_pic, milli_sec) |
| 函数功能 | 统计图像每个通道的像素值分布。异步接口。 |
| 输入说明 | - chn:int,图片处理通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 - source_pic:输入图片信息。 - Atlas 200/500 A2推理产品,输入图片分辨率:10*6~4096*8192(包括4096*8192)。 - 输入图片格式支持hi_pixel_format枚举值中的如下枚举项: text<br> HI_PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bit<br> HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bit <br> HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bit <br> HI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // YUV422SP 8bit<br> HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // YVU422SP 8bit<br> HI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5, // YUV444SP 8bit<br> HI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6, // YVU444SP 8bit<br> HI_PIXEL_FORMAT_YUYV_PACKED_422 = 7, // YUV422Packed YUYV 8bit<br> HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8, // YUV422Packed UYVY 8bit<br> HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9, // YUV422Packed YVYU 8bit<br> HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10, // YUV422Packed VYUY 8bit<br> HI_PIXEL_FORMAT_YUV_PACKED_444 = 11, // YUV444P 8bit<br> HI_PIXEL_FORMAT_RGB_888 = 12, // RGB888<br> HI_PIXEL_FORMAT_BGR_888 = 13, // BGR888<br> HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000, // YUV440SP 8bit <br> HI_PIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001, // YVU440SP 8bit <br> (说明:当图片格式为YUV440SP 8bit、YVU440SP 8bit时,Y分量统计准确,UV分量统计上存在误差。) - milli_sec:超时时间配置,单位是毫秒,取值范围如下。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 - 该接口即将废弃,当前使用本接口获取到的ret为0,请使用acl.himpi.vpc_calc_hist_v2代替。 - hist_config:统计结果。 hist_config是一个包含3个数组的结构体,用来存放每张图像3个分量的0-255的分布情况。 该接口即将废弃,当前使用本接口获取到的hist_config为全0信息,请使用acl.himpi.vpc_calc_hist_v2代替。 - task_id:任务分配的ID,用来区分任务。 |
父主题: VPC图像处理接口
acl.himpi.vpc_calc_hist_v2
| c函数原型 | hi_s32 hi_mpi_vpc_calc_hist(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_histogram_config *hist_config, hi_u32 *task_id, hi_s32 milli_sec); |
|---|---|
| Python函数 | task_id, ret = acl.himpi.vpc_calc_hist_v2(chn, source_pic, milli_sec, hist_config) |
| 函数功能 | 统计图像每个通道的像素值分布。异步接口。 |
| 输入说明 | - chn:int,图片处理通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 - source_pic:输入图片信息,相关约束请参见约束说明。(说明:当图片格式为YUV440SP 8bit、YVU440SP 8bit时,Y分量统计准确,UV分量统计上存在误差。) - milli_sec:超时时间配置,单位是毫秒,取值范围如下。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 - hist_config:统计结果指针地址。 hist_config中的地址指向包含统计结果的结构体,用来存放每张图像3个分量0~255的分布情况。 调用np_out_size = np.array([out_buffer_size], dtype=np.int32)创建numpy array类型数据。 再调用bytes_data = np_out_size.tobytes()-> ->size_ptr = acl.util.bytes_to_ptr(bytes_data),将数据转换为对象作为入参。函数调用成功后,size_ptr指向的数据(即np_out_size)会发生改变。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 - task_id:任务分配的ID,用来区分任务。 |
约束说明
-
关于输入分辨率的要求:
版本 约束 Atlas 200/500 A2推理产品 输入图片分辨率:10*6~4096*8192(包括4096*8192)。 -
输入图片格式支持hi_pixel_format枚举值中的如下枚举项:
HI_PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bitHI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bitHI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bitHI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // YUV422SP 8bitHI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // YVU422SP 8bitHI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5, // YUV444SP 8bitHI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6, // YVU444SP 8bitHI_PIXEL_FORMAT_YUYV_PACKED_422 = 7, // YUV422Packed YUYV 8bitHI_PIXEL_FORMAT_UYVY_PACKED_422 = 8, // YUV422Packed UYVY 8bitHI_PIXEL_FORMAT_YVYU_PACKED_422 = 9, // YUV422Packed YVYU 8bitHI_PIXEL_FORMAT_VYUY_PACKED_422 = 10, // YUV422Packed VYUY 8bitHI_PIXEL_FORMAT_YUV_PACKED_444 = 11, // YUV444P 8bitHI_PIXEL_FORMAT_RGB_888 = 12, // RGB888HI_PIXEL_FORMAT_BGR_888 = 13, // BGR888HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000, // YUV440SP 8bitHI_PIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001, // YVU440SP 8bit -
关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束。
父主题: VPC图像处理接口
acl.himpi.vpc_equalize_hist
| c函数原型 | hi_s32 hi_mpi_vpc_equalize_hist(hi_vpc_chn chn, const hi_vpc_pic_info* source_pic,hi_vpc_pic_info* dest_pic, const hi_vpc_lut_remap *lut_remap, hi_u32 *task_id, hi_s32 milli_sec); |
|---|---|
| Python函数 | task_id, ret = acl.himpi.vpc_equalize_hist(chn, source_pic, dest_pic, lut_remap, milli_sec) |
| 函数功能 | 将输入图片中指定分量的指定像素值重映射成其它像素值,作为输出图片,主要用户图像增强的场景。通过图片的色彩重映射以达到图片对比度更好,清晰度更好的效果。异步接口。 |
| 输入说明 | - chn:int,图片处理通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 - source_pic:输入图片信息,相关约束请参见约束说明。 - dest_pic:目标图片信息。输出图片格式与输入图片格式保持一致。 - lut_remap:图像lut_remap的配置。lut_remap是一个768 Byte的数组,配置给硬件进行图片像素重映射。 - milli_sec:超时时间配置,单位是毫秒,取值范围如下。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 - task_id:任务分配的ID,用来区分任务。 |
约束说明
-
输入图片分辨率为10*6~4096*4096(包括4096)。
-
输入图片格式支持hi_pixel_format枚举值中的如下枚举项:
HI_PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bitHI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bitHI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bitHI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // YUV422SP 8bitHI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // YVU422SP 8bitHI_PIXEL_FORMAT_YUV_PACKED_444 = 11, // YUV444P 8bitHI_PIXEL_FORMAT_RGB_888 = 12, // RGB888HI_PIXEL_FORMAT_BGR_888 = 13, // BGR888 -
输出图片格式与输入图片格式保持一致。
-
关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束。
父主题: VPC图像处理接口
acl.himpi.vpc_get_process_result
| c函数原型 | hi_s32 hi_mpi_vpc_get_process_result(hi_vpc_chn chn, hi_u32 task_id, hi_s32 milli_sec); |
|---|---|
| Python函数 | ret = acl.himpi.vpc_get_process_result(chn, task_id, milli_sec) |
| 函数功能 | 等待任务处理完成,再获取图片处理结果。 由于VPC功能接口是异步接口(例如:acl.himpi.vpc_crop),因此在调用VPC功能接口之后,还需要调用本接口等待任务处理完成,然后再获取处理结果。 |
| 输入说明 | - chn:int,图片处理通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 - milli_sec:超时时间配置,单位是毫秒,取值范围如下。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 - task_id:任务ID。 - 此处通过任务ID来明确需要获取哪次任务执行后的结果数据。 - 任务ID可以在调用抠图、缩放等接口后获取,请参见acl.himpi.vpc_resize~acl.himpi.vpc_batch_crop_resize_make_border。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 |
父主题: VPC图像处理接口
acl.himpi.vpc_sys_create_chn
| c函数原型 | hi_s32 hi_mpi_vpc_sys_create_chn(hi_vpc_chn *chnl, const hi_vpc_chn_attr *attr); |
|---|---|
| Python函数 | chnl, ret = acl.himpi.vpc_sys_create_chn(attr) |
| 函数功能 | 根据设置的通道属性创建图像处理通道,由系统返回可用通道号给用户。 |
| 输入说明 | attr:图片处理通道属性字典,具体请参见hi_vpc_chn_attr。如果参数attr为空,会返回错误码HI_ERR_VPC_NULL_PTR。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 - chnl:图片处理通道号,调用该接口后,由系统返回可用通道号给用户。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
父主题: VPC图像处理接口
acl.himpi.vpc_crop_resize_make_border
| c函数原型 | 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函数 | task_id, ret = acl.himpi.vpc_crop_resize_make_border(chn, source_pic, crop_resize_make_border_info, count, milli_sec) |
| 函数功能 | 按指定区域从一张输入图片中抠出一个或多个子图,对子图缩放后,再将每个子图按指定类型填充,作为一张或多张目标图片输出,主要用于等比例缩放场景。异步接口。 |
| 输入说明 | - chn:int,图片处理通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 - source_pic:原始图片信息,相关约束请参见约束说明。 - crop_resize_make_border_info: 抠图缩放填充的图片信息数组,需要用户设置抠图、缩放、填充信息以及目标图片的内存地址,VPC将抠图缩放填充后的结果数据存放在用户指定的内存地址中。如果多个填充结果的数据都指向同一个内存地址,后一次的结果数据会覆盖前一次的结果数据,导致输出图片跟预期不一致。 当前填充类型仅支持HI_BORDER_CONSTANT和HI_BORDER_REPLICATE,可以Padding到4096*4096。crop_resize_make_border_info数组的长度与count参数值保持一致。 - count:抠图缩放填充的图片数量,取值范围[1,256]。 - milli_sec:超时时间配置,单位是毫秒,取值范围如下。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VPC图像处理返回码。 - task_id:任务分配的ID,用来区分任务。 |
约束说明
| 昇腾AI处理器 | 约束 |
|---|---|
| Atlas 200/500 A2推理产品 | - 关于图片分辨率、图片格式、宽高对齐、内存等约束,请参见约束说明。 - 设置fx/fy之后,缩放后的图片的分辨率必须在[10*6~16384*16384]范围内,否则返回错误。 - 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。 - 由于hi_vpc_crop_resize_border_region结构体内容比较丰富,使用者可以自由组合功能。但存在一些约束,例如:若是crop的宽高与resize之后的宽高一致,则不进行缩放;若偏移值为0,则不进行填充。 - 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束。 - 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意: - 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数; - 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。 |
父主题: VPC图像处理接口
在线提单