22. DCI¶
22.1. 功能描述¶
Dynamic Contrast Improvement 的简称,藉由调整直方图来加强图像对比度,提升暗部细节。
22.2. API 参考¶
CVI_ISP_SetDCIAttr: 设置DCI 参数属性
CVI_ISP_GetDCIAttr: 获取DCI 参数属性
22.2.1. CVI_ISP_SetDCIAttr¶
【描述】
设置DCI 参数属性
【语法】
CVI_S32 CVI_ISP_SetDCIAttr(VI_PIPE ViPipe, const ISP_DCI_ATTR_S *pstDCIAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstDCIAttr |
DCI 参数属性 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
22.2.2. CVI_ISP_GetDCIAttr¶
【描述】
获取DCI 参数属性
【语法】
CVI_S32 CVI_ISP_GetDCIAttr(VI_PIPE ViPipe, ISP_DCI_ATTR_S *pstDCIAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstDCIAttr |
DCI 参数属性 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
22.3. 数据类型¶
ISP_DCI_MANUAL_ATTR_S: DCI 参数手动属性
ISP_DCI_AUTO_ATTR_S: DCI 参数自动属性
ISP_DCI_ATTR_S: DCI 参数属性
22.3.1. ISP_DCI_MANUAL_ATTR_S¶
【说明】
DCI 参数手动属性
【定义】
typedef struct _ISP_DCI_MANUAL_ATTR_S {
CVI_U16 ContrastGain;
CVI_U8 BlcThr;
CVI_U8 WhtThr;
CVI_U16 BlcCtrl;
CVI_U16 WhtCtrl;
CVI_U16 DciGainMax;
} ISP_DCI_MANUAL_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
ContrastGain |
用来控制DCI的强度,值越大,对比度越大。 取值范围: [0x0, 0x100] 数据类型: CVI_U16 |
BlcThr |
用来决定暗区范围的门阈值。值越大,包含的暗区范围越大。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
WhtThr |
用来决定亮区范围的门阈值。值越小,包含的亮区范围越大。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
BlcCtrl |
用来决定暗区的对比度。数值为256时,暗区对比度不变。比256大时,值越大,暗区对比度越大;反之,比256小时,值越小,暗区对比度越小。 取值范围: [0x0, 0x200] 数据类型: CVI_U16 |
WhtCtrl |
用来决定亮区的对比度。数值为256时,亮区对比度不变。比256大时,值越大,亮区对比度越大;反之,比256小时,值越小,亮区对比度越小。 取值范围: [0x0, 0x200] 数据类型: CVI_U16 |
DciGainMax |
用来控制对比度上限,数值越大,对比度可以越强。 取值范围: [0x0, 0x100] 数据类型: CVI_U16 |
【注意事项】
无
【相关数据类型及接口】
22.3.2. ISP_DCI_AUTO_ATTR_S¶
【说明】
DCI 参数自动属性
【定义】
typedef struct _ISP_DCI_AUTO_ATTR_S {
CVI_U16 ContrastGain[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 BlcThr[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 WhtThr[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 BlcCtrl[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 WhtCtrl[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 DciGainMax[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_DCI_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
ContrastGain |
用来控制DCI的强度,值越大,对比度越大。 取值范围: [0x0, 0x100] 数据类型: CVI_U16 |
BlcThr |
用来决定暗区范围的门阈值。值越大,包含的暗区范围越大。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
WhtThr |
用来决定亮区范围的门阈值。值越小,包含的亮区范围越大。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
BlcCtrl |
用来决定暗区的对比度。数值为256时,暗区对比度不变。比256大时,值越大,暗区对比度越大;反之,比256小时,值越小,暗区对比度越小。 取值范围: [0x0, 0x200] 数据类型: CVI_U16 |
WhtCtrl |
用来决定亮区的对比度。数值为256时,亮区对比度不变。比256大时,值越大,亮区对比度越大;反之,比256小时,值越小,亮区对比度越小。 取值范围: [0x0, 0x200] 数据类型: CVI_U16 |
DciGainMax |
用来控制对比度上限,数值越大,对比度可以越强。 取值范围: [0x0, 0x100] 数据类型: CVI_U16 |
【注意事项】
无
【相关数据类型及接口】
22.3.3. ISP_DCI_ATTR_S¶
【说明】
DCI 参数属性
【定义】
typedef struct _ISP_DCI_ATTR_S {
CVI_BOOL Enable;
CVI_BOOL TuningMode;
ISP_OP_TYPE_E enOpType;
CVI_U8 UpdateInterval;
CVI_U8 Method;
CVI_U32 Speed;
CVI_U16 DciStrength;
CVI_U16 DciGamma;
CVI_U8 DciOffset;
CVI_U8 ToleranceY;
CVI_U8 Sensitivity;
ISP_DCI_MANUAL_ATTR_S stManual;
ISP_DCI_AUTO_ATTR_S stAuto;
} ISP_DCI_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
Enable |
DCI模块使能。 0: 关闭。 1: 使能。 |
TuningMode |
在同一画面同时显示原始图像和结果图像,辅助调节参数。 0: CAC图像结果。 1: 在同一画面同时显示原始图像和结果图像。 取值范围: [0, 1] 数据类型: CVI_BOOL |
enOpType |
工作类型 OP_TYPE_AUTO: 自动模式 OP_TYPE_MANUAL: 手动模式 |
UpdateInterval |
影响参数更新间隔,值越大画面变化越慢, 效能越好。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
Method |
用来选择DCI algo 版本, 0:自适应版本, 1: 手动调整版本 取值范围: [0x0, 0x1] 数据类型: CVI_U8 |
Speed |
Smooth 强度, 值越高, 则变化越慢 取值范围: [0x0, 0x1f4] 数据类型: CVI_U16 |
DciStrength |
保留每个BIN最低斜率, 值越大斜率越小 取值范围: [0x0, 0x100] 数据类型: CVI_U16 |
DciGamma |
用来控制对比度,数值越大,对比越大,但画面亮度会降低。建议搭配 DciOffset 一起调试。 取值范围: [0x64, 0x320] 数据类型: CVI_U16 |
DciOffset |
整体画面亮度的调整。数值越大,整体亮度越大。建议搭配DciGamma 一起调试。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
ToleranceY |
到达目标亮度可容忍的亮度误差 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
Sensitivity |
灵敏度: 灵敏度越高,dci重运算的threadhold越低 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
stManual |
手动模式参数属性 |
stAuto |
自动模式参数属性 |
【注意事项】
无
【相关数据类型及接口】