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

DCI 参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

23.2.2. CVI_ISP_GetLDCIAttr

【描述】

获取LDCI 参数属性

【语法】

CVI_S32 CVI_ISP_GetLDCIAttr(VI_PIPE ViPipe, ISP_LDCI_ATTR_S *pstLDCIAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstLDCIAttr

DCI 参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

23.3. 数据类型

23.3.1. ISP_LDCI_GAUSS_COEF_ATTR_S

【说明】

LDCI 高斯结构参数属性

【定义】

typedef struct _ISP_LDCI_GAUSS_COEF_ATTR_S {
  CVI_U8 Wgt;
  CVI_U8 Sigma;
  CVI_U8 Mean;
} ISP_LDCI_GAUSS_COEF_ATTR_S;

【成员】

成员名称

描述

Wgt

根据亮度控制 LDCI 作用强度,决定LDCI 结果与原图融合的权重曲线

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

数据类型: CVI_U8

Sigma

根据亮度控制 LDCI 作用强度,决定LDCI 结果与原图融合的权重曲线

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

数据类型: CVI_U8

Mean

根据亮度控制 LDCI 作用强度,决定LDCI 结果与原图融合的权重曲线

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

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

23.3.2. ISP_LDCI_MANUAL_ATTR_S

【说明】

LDCI 参数手动属性

【定义】

typedef struct _ISP_LDCI_MANUAL_ATTR_S {
  CVI_U16 LdciStrength;
  CVI_U16 LdciRange;
  CVI_U16 TprCoef;
  CVI_U8 EdgeCoring;
  CVI_U8 LumaWgtMax;
  CVI_U8 LumaWgtMin;
  CVI_U8 VarMapMax;
  CVI_U8 VarMapMin;
  CVI_U8 UvGainMax;
  CVI_U8 UvGainMin;
  CVI_U8 BrightContrastHigh;
  CVI_U8 BrightContrastLow;
  CVI_U8 DarkContrastHigh;
  CVI_U8 DarkContrastLow;
  ISP_LDCI_GAUSS_COEF_ATTR_S LumaPosWgt;
} ISP_LDCI_MANUAL_ATTR_S;

【成员】

成员名称

描述

LdciStrength

控制 LDCI 增强效果参数。数值越大,局部对比度拉伸越强

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

数据类型: CVI_U16

LdciRange

针对图像的高频区,控制对比度增强的程度。数值越大,图像的高频区对比度越强

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

数据类型: CVI_U16

TprCoef

LD CI曲线时间域上变化的平顺度。数值越小,时间域变化越平顺,反之,则变化越快

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

数据类型: CVI_U16

EdgeCoring

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

数据类型: CVI_U8

LumaWgtMax

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

数据类型: CVI_U8

LumaWgtMin

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

数据类型: CVI_U8

VarMapMax

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

数据类型: CVI_U8

VarMapMin

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

数据类型: CVI_U8

UvGainMax

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

数据类型: CVI_U8

UvGainMin

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

数据类型: CVI_U8

BrightContrastHigh

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

数据类型: CVI_U8

BrightContrastLow

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

数据类型: CVI_U8

DarkContrastHigh

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

数据类型: CVI_U8

DarkContrastLow

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

数据类型: CVI_U8

LumaPosWgt

根据亮度控制 LDCI 作用强度,决定LDCI 结果与原图融合的权重曲线

【注意事项】

【相关数据类型及接口】

23.3.3. ISP_LDCI_AUTO_ATTR_S

【说明】

LDCI 参数自动属性

【定义】

typedef struct _ISP_LDCI_AUTO_ATTR_S {
  CVI_U16 LdciStrength[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 LdciRange[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 TprCoef[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 EdgeCoring[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 LumaWgtMax[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 LumaWgtMin[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 VarMapMax[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 VarMapMin[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 UvGainMax[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 UvGainMin[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 BrightContrastHigh[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 BrightContrastLow[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 DarkContrastHigh[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 DarkContrastLow[ISP_AUTO_ISO_STRENGTH_NUM];
  ISP_LDCI_GAUSS_COEF_ATTR_S  LumaPosWgt[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_LDCI_AUTO_ATTR_S;

【成员】

成员名称

描述

LdciStrength

控制 LDCI 增强效果参数。数值越大,局部对比度拉伸越强

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

数据类型: CVI_U16

LdciRange

针对图像的高频区,控制对比度增强的程度。数值越大,图像的高频区对比度越强

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

数据类型: CVI_U16

TprCoef

LD CI曲线时间域上变化的平顺度。数值越小,时间域变化越平顺,反之,则变化越快

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

数据类型: CVI_U16

EdgeCoring

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

数据类型: CVI_U8

LumaWgtMax

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

数据类型: CVI_U8

LumaWgtMin

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

数据类型: CVI_U8

VarMapMax

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

数据类型: CVI_U8

VarMapMin

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

数据类型: CVI_U8

UvGainMax

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

数据类型: CVI_U8

UvGainMin

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

数据类型: CVI_U8

BrightContrastHigh

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

数据类型: CVI_U8

BrightContrastLow

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

数据类型: CVI_U8

DarkContrastHigh

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

数据类型: CVI_U8

DarkContrastLow

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

数据类型: CVI_U8

LumaPosWgt

根据亮度控制 LDCI 作用强度,决定 LDCI 结果与原图融合的权重曲线

【注意事项】

【相关数据类型及接口】

23.3.4. ISP_LDCI_ATTR_S

【说明】

DCI 参数属性

【定义】

typedef struct _ISP_LDCI_ATTR_S {
  CVI_BOOL Enable;
  ISP_OP_TYPE_E enOpType;
  CVI_U8 UpdateInterval;
  CVI_U8 GaussLPFSigma;
  ISP_LDCI_MANUAL_ATTR_S stManual;
  ISP_LDCI_AUTO_ATTR_S stAuto;
} ISP_LDCI_ATTR_S;

【成员】

成员名称

描述

Enable

LDCI模块使能

enOpType

工作类型

OP_TYPE_AUTO: 自动模式

OP_TYPE_MANUAL: 手动模式

UpdateInterval

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

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

数据类型: CVI_U8

GaussLPFSigma

局部滤波程度,数值越小,局部对比度增强效果越局域化,反之,则越全局化

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

数据类型: CVI_U8

stManual

手动模式参数属性

stAuto

自动模式参数属性

【注意事项】

【相关数据类型及接口】