33. CLUT

33.1. 功能描述

通过一个17x17x17 的3D LUT, 在RGB domain上做线性转换。将RGB像素值查表内插得到新的RGB像素值, 可以借此调试颜色、亮度。

33.2. API 参考

33.2.1. CVI_ISP_SetClutAttr

【描述】

设置CLUT属性参数

【语法】

CVI_S32 CVI_ISP_SetClutAttr(VI_PIPE ViPipe, const ISP_CLUT_ATTR_S *pstClutAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstClutAttr

CLUT属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_CLUT_ATTR_S stAttr;
CVI_ISP_GetClutAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetClutAttr(ViPipe, &stAttr);

【相关主题】

33.2.2. CVI_ISP_GetClutAttr

【描述】

获取CLUT属性参数

【语法】

CVI_S32 CVI_ISP_GetClutAttr(VI_PIPE ViPipe, ISP_CLUT_ATTR_S *pstClutAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstClutAttr

CLUT属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

33.2.3. CVI_ISP_SetClutHslAttr

【描述】

设置CLUT hsl属性参数

【语法】

CVI_S32 CVI_ISP_SetClutHslAttr(VI_PIPE ViPipe, const ISP_CLUT_HSL_ATTR_S *pstClutHslAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstClutHslAttr

CLUT hsl属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_CLUT_HSL_ATTR_S stAttr;
CVI_ISP_GetClutHslAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetClutHslAttr(ViPipe, &stAttr);

【相关主题】

33.2.4. CVI_ISP_GetClutHslAttr

【描述】

获取CLUT hsl属性参数

【语法】

CVI_S32 CVI_ISP_GetClutHslAttr(VI_PIPE ViPipe, ISP_CLUT_HSL_ATTR_S *pstClutHslAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstClutHslAttr

CLUT hsl属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

33.3. 数据类型

33.3.1. ISP_CLUT_ATTR_S

【说明】

定义CLUT属性参数

【定义】

typedef struct _ISP_CLUT_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_U16 ClutR[ISP_CLUT_LUT_LENGTH]; /*Rw; Range:[0, 1023]*/
        CVI_U16 ClutG[ISP_CLUT_LUT_LENGTH]; /*Rw; Range:[0, 1023]*/
        CVI_U16 ClutB[ISP_CLUT_LUT_LENGTH]; /*Rw; Range:[0, 1023]*/
} ISP_CLUT_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

UpdateInterval

保留,未使用参数。

取值范围: [0, 255]

数据类型: CVI_U8

ClutR

R通道的LUT。

取值范围: [0, 1023]

数据类型: CVI_U16

ClutG

G通道的LUT。

取值范围: [0, 1023]

数据类型: CVI_U16

ClutB

B通道的LUT。

取值范围: [0, 1023]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

33.3.2. ISP_CLUT_HSL_ATTR_S

【说明】

定义CLUT hsl属性参数

【定义】

typedef struct _ISP_CLUT_HSL_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        CVI_FLOAT Sigma; /*Rw; Range:[0, 64]*/
        CVI_S16 HByH[ISP_CLUT_HUE_LENGTH]; /*Rw; Range:[-30, 30]*/
        CVI_U16 SByH[ISP_CLUT_HUE_LENGTH]; /*Rw; Range:[0, 100]*/
        CVI_U16 LByH[ISP_CLUT_HUE_LENGTH]; /*Rw; Range:[0, 100]*/
        CVI_U16 SByS[ISP_CLUT_SAT_LENGTH]; /*Rw; Range:[0, 100]*/
} ISP_CLUT_HSL_ATTR_S;

【成员】

成员名称

描述

Enable

hsl模块使能。

取值范围: [0, 1]

数据类型: CVI_BOOL

Sigma

None

取值范围: [0, 64]

数据类型: CVI_FLOAT

HByH

长度37的数组,将hue 36等分,可设置每个hue范围旋转的角度。

取值范围: [-30, 30]

数据类型: CVI_S16

SByH

长度37的数组,将hue 36等分,可设置每个hue范围饱和度增益,50为一倍。

取值范围: [0, 100]

数据类型: CVI_U16

LByH

长度37的数组,将hue 36等分,可设置每个hue范围亮度增益,50为一倍。

取值范围: [0, 100]

数据类型: CVI_U16

SByS

长度21的数组,将饱和度20等分,可设置每个饱和度范围饱和度的增益,50为一倍。

取值范围: [0, 100]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】