hi_mpi_isp_calc_flicker_type
函数功能
输入帧信息,获取工频闪类型检测的结果。
函数原型
hi_s32 hi_mpi_isp_calc_flicker_type(hi_vi_pipe vi_pipe, hi_isp_calc_flicker_input *input_param, hi_isp_calc_flicker_output *output_param, hi_video_frame_info frame[], hi_u32 array_size)
约束说明
- 必须使用连续的3帧数据进行计算,输入的array_size帧数需要等于3。同时frame[]指向的数据必须保证有效。
- 计算的帧数据的分辨率不能超过ISP模块最大能够处理的图像分辨率。
- 为了加快计算速度,接口内部使用VGS硬件模块参与计算,所以用于计算工频闪的图像分辨率不能超过VGS的最大处理分辨率范围。
- 在不同频闪混合的光源下,比如光源环境同时存在50Hz和60Hz的光源,或者工频闪光源只占整个环境光源非常小的一部分,容易出现误判。
- 可以参考附录工频闪类型自适应Sample用例处理流程。
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
vi_pipe |
输入 |
VI PIPE号。 取值范围:[0, 12)。 |
input_param |
输入 |
自动计算工频闪输入相关参数指针。 |
output_param |
输出 |
自动计算工频闪输出结果参数指针。 |
frame[] |
输入 |
输入需要计算的连续帧数据。 |
array_size |
输入 |
输入需要计算连续帧的个数。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码
参考样例
hi_vi_pipe vi_pipe = 0; hi_u16 frame_num = 3; hi_video_frame_info frame[3]; hi_isp_calc_flicker_input input_param; hi_isp_calc_flicker_output output_param; hi_isp_exp_info exp_info; hi_mpi_isp_query_exposure_info(vi_pipe, &exp_info); input_param. lines_per_second = exp_info.lines_per500ms*2 .. .. .. 获取3帧连续帧数据给 frame[3](此处略) .. .. .. ret = hi_mpi_isp_calc_flicker_type(vi_pipe, input_param, output_param, frame, frame_num);