12. CCM¶
12.1. 功能描述¶
CCM 为 Color Correction Matrix 的简称。因为 Sensor 在 RGB 的响应与人眼不用,所以需要使用此矩阵做转换,让前端捕获的图片亮度与人眼一致。
12.2. API 参考¶
CVI_ISP_SetCCMAttr : 设置色彩校正矩阵属性参数
CVI_ISP_GetCCMAttr : 获取色彩校正矩阵属性参数
CVI_ISP_SetCCMSaturationAttr : 设置色彩饱和度属性参数
CVI_ISP_GetCCMSaturationAttr : 获取色彩饱和度属性参数
CVI_ISP_SetSaturationAttr : 设置色彩饱和度属性参数
CVI_ISP_GetSaturationAttr : 获取色彩饱和度属性参数
12.2.1. CVI_ISP_SetCCMAttr¶
【描述】
设置色彩校正矩阵属性参数
【语法】
CVI_S32 CVI_ISP_SetCCMAttr(VI_PIPE ViPipe, const ISP_CCM_ATTR_S *pstCCMAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstCCMAttr |
色彩校正矩阵属性参数 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
VI_PIPE ViPipe = 0;
ISP_CCM_ATTR_S stAttr;
CVI_ISP_GetCCMAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetCCMAttr(ViPipe, &stAttr);
【相关主题】
12.2.2. CVI_ISP_GetCCMAttr¶
【描述】
获取色彩校正矩阵属性参数
【语法】
CVI_S32 CVI_ISP_GetCCMAttr(VI_PIPE ViPipe, ISP_CCM_ATTR_S *pstCCMAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstCCMAttr |
色彩校正矩阵属性参数 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
12.2.3. CVI_ISP_SetCCMSaturationAttr¶
【描述】
设置色彩饱和度属性参数
【语法】
CVI_S32 CVI_ISP_SetCCMSaturationAttr(VI_PIPE ViPipe, const ISP_CCM_SATURATION_ATTR_S *pstCCMSaturationAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstCCMSaturationAttr |
色彩饱和度属性参数 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
VI_PIPE ViPipe = 0;
ISP_CCM_SATURATION_ATTR_S stAttr;
CVI_ISP_GetCCMSaturationAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetCCMSaturationAttr(ViPipe, &stAttr);
【相关主题】
12.2.4. CVI_ISP_GetCCMSaturationAttr¶
【描述】
获取色彩饱和度属性参数
【语法】
CVI_S32 CVI_ISP_GetCCMSaturationAttr(VI_PIPE ViPipe, ISP_CCM_SATURATION_ATTR_S *pstCCMSaturationAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstCCMSaturationAttr |
色彩饱和度属性参数 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
12.2.5. CVI_ISP_SetSaturationAttr¶
【描述】
设置色彩饱和度属性参数
【语法】
CVI_S32 CVI_ISP_SetSaturationAttr(VI_PIPE ViPipe, const ISP_SATURATION_ATTR_S *pstSaturationAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstSaturationAttr |
色彩饱和度属性参数 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
VI_PIPE ViPipe = 0;
ISP_SATURATION_ATTR_S stAttr;
CVI_ISP_GetSaturationAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetSaturationAttr(ViPipe, &stAttr);
【相关主题】
12.2.6. CVI_ISP_GetSaturationAttr¶
【描述】
获取色彩饱和度属性参数
【语法】
CVI_S32 CVI_ISP_GetSaturationAttr(VI_PIPE ViPipe, ISP_SATURATION_ATTR_S *pstSaturationAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstSaturationAttr |
色彩饱和度属性参数 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
12.3. 数据类型¶
ISP_CCM_ATTR_S : 定义色彩校正矩阵属性参数
ISP_CCM_MANUAL_ATTR_S : 定义色彩校正矩阵属性手动参数
ISP_CCM_AUTO_ATTR_S : 定义色彩校正矩阵属性自动参数
ISP_COLORMATRIX_ATTR_S : 定义色彩校正矩阵
ISP_CCM_SATURATION_MANUAL_ATTR_S : 定义手动色彩饱和度属性参数
ISP_CCM_SATURATION_AUTO_ATTR_S : 定义自动色彩饱和度属性参数
ISP_CCM_SATURATION_ATTR_S : 定义色彩饱和度属性参数
ISP_SATURATION_MANUAL_ATTR_S : 定义手动色彩饱和度属性参数
ISP_SATURATION_AUTO_ATTR_S : 定义自动色彩饱和度属性参数
ISP_SATURATION_ATTR_S : 定义色彩饱和度属性参数
12.3.1. ISP_CCM_ATTR_S¶
【说明】
定义色彩校正矩阵属性参数
【定义】
typedef struct _ISP_CCM_ATTR_S {
CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
ISP_OP_TYPE_E enOpType;
CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
CVI_U8 CCMOverStr; /*Rw; Range:[0, 255]*/
CVI_U8 CCMOverThr; /*Rw; Range:[0, 255]*/
ISP_CCM_MANUAL_ATTR_S stManual;
ISP_CCM_AUTO_ATTR_S stAuto;
} ISP_CCM_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
Enable |
模块使能开关 取值范围: [0, 1] 数据类型: CVI_BOOL |
enOpType |
工作类型 OP_TYPE_AUTO:自动模式 OP_TYPE_MANUAL:手动模式 数据类型: ISP_OP_TYPE_E |
UpdateInterval |
影响参数更新间隔,值越大画面变化越慢,效能越好。 取值范围: [0, 255] 数据类型: CVI_U8 |
CCMOverStr |
过饱和保护强度。 取值范围: [0, 255] 数据类型: CVI_U8 |
CCMOverThr |
过饱和保护。过饱和判断阈值,值越大,越容易进入到过饱和保护状态。 取值范围: [0, 255] 数据类型: CVI_U8 |
stManual |
手动参数 数据类型: ISP_CCM_MANUAL_ATTR_S |
stAuto |
自动参数 数据类型: ISP_CCM_AUTO_ATTR_S |
【注意事项】
无
【相关数据类型及接口】
12.3.2. ISP_CCM_MANUAL_ATTR_S¶
【说明】
定义色彩校正矩阵属性手动参数
【定义】
typedef struct _ISP_CCM_MANUAL_ATTR_S {
CVI_BOOL SatEnable; /*Rw; Range:[0, 1]*/
CVI_S16 CCM[9]; /*Rw; Range:[-8192, 8191]*/
} ISP_CCM_MANUAL_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
SatEnable |
手动模式下,饱和度是否生效。 取值范围: [0, 1] 数据类型: CVI_BOOL |
CCM |
3x3色彩校正矩阵实际内容 取值范围: [-8192, 8191] 数据类型: CVI_S16 |
【注意事项】
无
【相关数据类型及接口】
12.3.3. ISP_CCM_AUTO_ATTR_S¶
【说明】
定义色彩校正矩阵属性自动参数
【定义】
typedef struct _ISP_CCM_AUTO_ATTR_S {
CVI_BOOL ISOActEnable; /*Rw; Range:[0, 1]*/
CVI_BOOL TempActEnable; /*Rw; Range:[0, 1]*/
CVI_U8 CCMTabNum; /*Rw; Range:[3, 7]*/
ISP_COLORMATRIX_ATTR_S CCMTab[7];
} ISP_CCM_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
ISOActEnable |
低照度下CCM Bypass功能使能。 0: 关闭。 1: 使能。 取值范围: [0, 1] 数据类型: CVI_BOOL |
TempActEnable |
高低色温下CCM Bypass功能使能。 0: 关闭。 1: 使能。 取值范围: [0, 1] 数据类型: CVI_BOOL |
CCMTabNum |
当前配置的CCM矩阵个数。 取值范围: [3, 7] 数据类型: CVI_U8 |
CCMTab |
不同色温下的颜色校正矩阵 数据类型: ISP_COLORMATRIX_ATTR_S |
【注意事项】
无
【相关数据类型及接口】
12.3.4. ISP_COLORMATRIX_ATTR_S¶
【说明】
定义色彩校正矩阵
【定义】
typedef struct _ISP_COLORMATRIX_ATTR_S {
CVI_U16 ColorTemp; /*Rw; Range:[500, 30000]*/
CVI_S16 CCM[9]; /*Rw; Range:[-8192, 8191]*/
} ISP_COLORMATRIX_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
ColorTemp |
此色彩校正矩阵适用的色温 取值范围: [500, 30000] 数据类型: CVI_U16 |
CCM |
3x3色彩校正矩阵实际内容 取值范围: [-8192, 8191] 数据类型: CVI_S16 |
【注意事项】
无
【相关数据类型及接口】
12.3.5. ISP_CCM_SATURATION_MANUAL_ATTR_S¶
【说明】
定义手动色彩饱和度属性参数
【定义】
typedef struct _ISP_CCM_SATURATION_MANUAL_ATTR_S {
CVI_U8 SaturationLE; /*Rw; Range:[0, 255]*/
CVI_U8 SaturationSE; /*Rw; Range:[0, 255]*/
} ISP_CCM_SATURATION_MANUAL_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
SaturationLE |
长曝饱和度 取值范围: [0, 255] 数据类型: CVI_U8 |
SaturationSE |
短曝饱和度 取值范围: [0, 255] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
12.3.6. ISP_CCM_SATURATION_AUTO_ATTR_S¶
【说明】
定义自动色彩饱和度属性参数
【定义】
typedef struct _ISP_CCM_SATURATION_AUTO_ATTR_S {
CVI_U8 SaturationLE[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 SaturationSE[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_CCM_SATURATION_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
SaturationLE |
长曝饱和度 取值范围: [0, 255] 数据类型: CVI_U8 |
SaturationSE |
短曝饱和度 取值范围: [0, 255] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
12.3.7. ISP_CCM_SATURATION_ATTR_S¶
【说明】
定义色彩饱和度属性参数
【定义】
typedef struct _ISP_CCM_SATURATION_ATTR_S {
ISP_CCM_SATURATION_MANUAL_ATTR_S stManual;
ISP_CCM_SATURATION_AUTO_ATTR_S stAuto;
} ISP_CCM_SATURATION_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
stManual |
手动参数 |
stAuto |
自动参数 |
【注意事项】
无
【相关数据类型及接口】
12.3.8. ISP_SATURATION_MANUAL_ATTR_S¶
【说明】
定义手动色彩饱和度属性参数
【定义】
typedef struct _ISP_SATURATION_MANUAL_ATTR_S {
CVI_U8 Saturation; /*Rw; Range:[0, 255]*/
} ISP_SATURATION_MANUAL_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
Saturation |
画面的整体饱和度 取值范围: [0, 255] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
12.3.9. ISP_SATURATION_AUTO_ATTR_S¶
【说明】
定义自动色彩饱和度属性参数
【定义】
typedef struct _ISP_SATURATION_AUTO_ATTR_S {
CVI_U8 Saturation[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_SATURATION_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
Saturation |
画面的整体饱和度 取值范围: [0, 255] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
12.3.10. ISP_SATURATION_ATTR_S¶
【说明】
定义色彩饱和度属性参数
【定义】
typedef struct _ISP_SATURATION_ATTR_S {
ISP_OP_TYPE_E enOpType;
ISP_SATURATION_MANUAL_ATTR_S stManual;
ISP_SATURATION_AUTO_ATTR_S stAuto;
} ISP_SATURATION_ATTR_S;
【成员】
成员名称 |
描述 |
|---|---|
enOpType |
工作类型 OP_TYPE_AUTO:自动模式 OP_TYPE_MANUAL:手动模式 数据类型: ISP_OP_TYPE_E |
stManual |
手动参数 |
stAuto |
自动参数 |
【注意事项】
无
【相关数据类型及接口】