---
title: hi_mpi_isp_calc_flicker_type
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/ispdevug/ispdevapi_0433.html
sourcePath: /source/zh/canncommercial/900/others/ispdevug/ispdevapi_0433.html
indexId: da974cf40fbd032593e725f33061e6037670a0090d669f815d6ae231120b570865
---
# hi_mpi_isp_calc_flicker_type

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | ☓ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | ☓ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | ☓ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

输入帧信息，获取工频闪类型检测的结果。


#### 函数原型

```
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)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| vi\_pipe | 输入 | VI PIPE号。 取值范围：[0, 12)。 |
| input\_param | 输入 | 自动计算工频闪输入相关参数指针。 |
| output\_param | 输出 | 自动计算工频闪输出结果参数指针。 |
| frame[] | 输入 | 输入需要计算的连续帧数据。 |
| array\_size | 输入 | 输入需要计算连续帧的个数。 |


#### 返回值说明

- 0：成功
- 非0：失败，参见  ISP返回码


#### 约束说明

- 必须使用连续的3帧数据进行计算，输入的array_size帧数需要等于3。同时frame[]指向的数据必须保证有效。
- 计算的帧数据的分辨率不能超过ISP模块最大能够处理的图像分辨率。
- 为了加快计算速度，接口内部使用VGS硬件模块参与计算，所以用于计算工频闪的图像分辨率不能超过VGS的最大处理分辨率范围。
- 在不同频闪混合的光源下，比如光源环境同时存在50Hz和60Hz的光源，或者工频闪光源只占整个环境光源非常小的一部分，容易出现误判。
- 可以参考附录  工频闪类型自适应Sample用例处理流程
。


#### 调用示例

```
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);
```
