21. Gamma¶
21.1. 功能描述¶
因人眼对低亮度较敏感, 故对图像的亮度做非线性转换, 压缩亮区、拉伸暗区使整体亮度感受更好。
21.2. API 参考¶
CVI_ISP_SetGammaAttr: 设置gamma 属性参数
CVI_ISP_GetGammaAttr: 获取gamma 属性参数
CVI_ISP_GetGammaCurveByType: 获取 Gamma 曲线信息
CVI_ISP_SetAutoGammaAttr: 设置 Auto Gamma 属性参数
CVI_ISP_GetAutoGammaAttr: 获取 Auto Gamma 属性参数
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. 数据类型¶
ISP_GAMMA_ATTR_S: Gamma 属性参数
ISP_GAMMA_CURVE_ATTR_S: Auto Gamma 曲线参数
ISP_AUTO_GAMMA_ATTR_S: Auto Gamma 属性参数
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 |
自适应曲线 请参考 |
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
【相关数据类型及接口】