23. LDCI

23.1. 功能描述

Local Dynamic Contrast Improvement 的简称,藉由调整直方图来加强图像对比度,提升暗部细节。

23.2. API 参考

23.2.1. CVI_ISP_SetLDCIAttr

【描述】

设置LDCI 参数属性

【语法】

CVI_S32 CVI_ISP_SetLDCIAttr(VI_PIPE ViPipe, const ISP_LDCI_ATTR_S *pstLDCIAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstLDCIAttr

LDCI 参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_LDCI_ATTR_S stAttr;
CVI_ISP_GetLDCIAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetLDCIAttr(ViPipe, &stAttr);

【相关主题】

23.2.2. CVI_ISP_GetLDCIAttr

【描述】

获取LDCI 参数属性

【语法】

CVI_S32 CVI_ISP_GetLDCIAttr(VI_PIPE ViPipe, ISP_LDCI_ATTR_S *pstLDCIAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstLDCIAttr

LDCI 参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

23.3. 数据类型

23.3.1. ISP_LDCI_MANUAL_ATTR_S

【说明】

定义手动LDCI 参数属性

【定义】

typedef struct _ISP_LDCI_MANUAL_ATTR_S {
        CVI_U8 LdciStrength[9]; /*Rw; Range:[0, 255]*/
        CVI_U8 AdaptiveGainMax; /*Rw; Range:[0, 255]*/
        CVI_U8 AdaptiveGainMin; /*Rw; Range:[0, 255]*/
        CVI_U8 FBCStrength; /*Rw; Range:[0, 31]*/
        CVI_U8 LdciThres1; /*Rw; Range:[0, 255]*/
} ISP_LDCI_MANUAL_ATTR_S;

【成员】

成员名称

描述

LdciStrength

根据不同的亮度,做不同强度的对比度拉升。

取值范围: [0, 255]

数据类型: CVI_U8

AdaptiveGainMax

根据当前点亮度与局部平均亮度的差异,做不同强度的对比度拉升。值越大,亮度差异大的点,对比度拉升程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

AdaptiveGainMin

根据当前点亮度与局部平均亮度的差异,做不同强度的对比度拉升。值越大,亮度差异小的点,对比度拉升程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

FBCStrength

逆光人脸保护功能。0表示功能不开启;非0表示功能开启,并且值越小,人脸亮度保护程度越大。

取值范围: [0, 31]

数据类型: CVI_U8

LdciThres1

对像素点亮度与block平均亮度的差异值做收缩。

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

23.3.2. ISP_LDCI_AUTO_ATTR_S

【说明】

定义自动LDCI 参数属性

【定义】

typedef struct _ISP_LDCI_AUTO_ATTR_S {
        CVI_U8 LdciStrength[9][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 AdaptiveGainMax[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 AdaptiveGainMin[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 FBCStrength[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 31]*/
        CVI_U8 LdciThres1[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_LDCI_AUTO_ATTR_S;

【成员】

成员名称

描述

LdciStrength

根据不同的亮度,做不同强度的对比度拉升。

取值范围: [0, 255]

数据类型: CVI_U8

AdaptiveGainMax

根据当前点亮度与局部平均亮度的差异,做不同强度的对比度拉升。值越大,亮度差异大的点,对比度拉升程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

AdaptiveGainMin

根据当前点亮度与局部平均亮度的差异,做不同强度的对比度拉升。值越大,亮度差异小的点,对比度拉升程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

FBCStrength

逆光人脸保护功能。0表示功能不开启;非0表示功能开启,并且值越小,人脸亮度保护程度越大。

取值范围: [0, 31]

数据类型: CVI_U8

LdciThres1

对像素点亮度与block平均亮度的差异值做收缩。

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

23.3.3. ISP_LDCI_ATTR_S

【说明】

定义LDCI 参数属性

【定义】

typedef struct _ISP_LDCI_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_U8 BlockNum; /*Rw; Range:[4, 62]*/
        ISP_LDCI_MANUAL_ATTR_S stManual;
        ISP_LDCI_AUTO_ATTR_S stAuto;
} ISP_LDCI_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

BlockNum

统计luma均值的分块数量。

取值范围: [4, 62]

数据类型: CVI_U8

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】