21. Gamma

21.1. 功能描述

因人眼对低亮度较敏感, 故对图像的亮度做非线性转换, 压缩亮区、拉伸暗区使整体亮度感受更好。

21.2. API 参考

21.2.1. CVI_ISP_SetGammaAttr

【描述】

设置gamma 属性参数

【语法】

CVI_S32 CVI_ISP_SetGammaAttr(VI_PIPE ViPipe, const ISP_GAMMA_ATTR_S *pstGammaAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstGammaAttr

gamma 属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

21.2.2. CVI_ISP_GetGammaAttr

【描述】

获取gamma 属性参数

【语法】

CVI_S32 CVI_ISP_GetGammaAttr(VI_PIPE ViPipe, ISP_GAMMA_ATTR_S *pstGammaAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstGammaAttr

gamma 属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

21.2.3. CVI_ISP_GetGammaCurveByType

【描述】

获取 Gamma 曲线信息

【语法】

CVI_S32 CVI_ISP_GetGammaCurveByType(VI_PIPE ViPipe, ISP_GAMMA_ATTR_S *pstGammaAttr, const ISP_GAMMA_CURVE_TYPE_E curveType);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstGammaAttr

Gamma 属性参数

输出

curveType

Gamma 曲线类型

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

21.2.4. CVI_ISP_SetAutoGammaAttr

【描述】

设置 Auto Gamma 属性参数

【语法】

CVI_S32 CVI_ISP_SetAutoGammaAttr(VI_PIPE ViPipe, const ISP_AUTO_GAMMA_ATTR_S *pstGammaAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstGammaAttr

Auto Gamma 属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

21.2.5. CVI_ISP_GetAutoGammaAttr

【描述】

获取 Auto Gamma 属性参数

【语法】

CVI_S32 CVI_ISP_GetAutoGammaAttr(VI_PIPE ViPipe, ISP_AUTO_GAMMA_ATTR_S *pstGammaAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstGammaAttr

Auto Gamma 属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

21.3. 数据类型

21.3.1. ISP_GAMMA_CURVE_TYPE_E

【说明】

Gamma 曲线属性

【定义】

typedef enum _ISP_GAMMA_CURVE_TYPE_E {
   ISP_GAMMA_CURVE_DEFAULT,
   ISP_GAMMA_CURVE_SRGB,
   ISP_GAMMA_CURVE_USER_DEFINE,
   ISP_GAMMA_CURVE_AUTO,
   ISP_GAMMA_CURVE_MAX
} ISP_GAMMA_CURVE_TYPE_E;

【成员】

成员名称

描述

ISP_GAMMA_CURVE_DEFAULT

默认曲线

ISP_GAMMA_CURVE_SRGB

SRGB曲线

ISP_GAMMA_CURVE_USER_DEFINE

用户自定义曲线

ISP_GAMMA_CURVE_AUTO

自适应曲线 请参考

CVI_ISP_SetAutoGammaAttr

CVI_ISP_GetAutoGammaAttr

ISP_GAMMA_CURVE_MAX

【注意事项】

【相关数据类型及接口】

21.3.2. ISP_GAMMA_ATTR_S

【说明】

gamma 属性参数

【定义】

typedef struct _ISP_GAMMA_ATTR_S {
   CVI_BOOL Enable;
   CVI_U8 UpdateInterval;
   CVI_U16 Table[GAMMA_NODE_NUM];
   ISP_GAMMA_CURVE_TYPE_E enCurveType;
} ISP_GAMMA_ATTR_S;

【成员】

成员名称

描述

Enable

Gamma功能使能。

0: 关闭。

1: 使能。

取值范围: [0, 1]

数据类型: CVI_BOOL

UpdateInterval

影响参数更新间隔, 值越大画面变化越慢, 效能越好。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

Table[GAMMA_NODE_NUM]

Gamma曲线节点数值

取值范围: [0x0, 0xfff]

数据类型: CVI_U16

enCurveType

Gamma曲线类型

【注意事项】

GAMMA_NODE_NUM = 256

【相关数据类型及接口】

21.3.3. ISP_GAMMA_CURVE_ATTR_S

【说明】

gamma 属性参数

【定义】

typedef struct _ISP_GAMMA_CURVE_ATTR_S {
   CVI_S16 Lv;
   CVI_U16 Tbl[GAMMA_NODE_NUM];
} ISP_GAMMA_CURVE_ATTR_S;

【成员】

成员名称

描述

Lv

Gamma 曲线对应 Lv 范围

取值范围: [-500, 1500]

数据类型: CVI_S16

Tbl[GAMMA_NODE_NUM]

Gamma曲线节点数值

取值范围: [0x0, 0xfff]

数据类型: CVI_U16

【注意事项】

GAMMA_NODE_NUM = 256

【相关数据类型及接口】

21.3.4. ISP_AUTO_GAMMA_ATTR_S

【说明】

gamma 属性参数

【定义】

typedef struct _ISP_AUTO_GAMMA_ATTR_S {
   CVI_U8 GammaTabNum;
   ISP_GAMMA_CURVE_ATTR_S  GammaTab[GAMMA_MAX_INTERPOLATION_NUM];
} ISP_AUTO_GAMMA_ATTR_S;

【成员】

成员名称

描述

GammaTabNum

自适应 Gamma 曲线数量

取值范围: [0, 5]

数据类型: CVI_U8

GammaTab[GAMMA_MAX_INTERPOLATION_NUM]

自适应 Gamma 曲线信息

【注意事项】

GAMMA_MAX_INTERPOLATION_NUM=5

【相关数据类型及接口】