24. Dehaze

24.1. 功能描述

藉由计算雾的浓度,从而自动调整对比度、饱和度以达到去雾的效果。

24.2. API 参考

24.2.1. CVI_ISP_SetDehazeAttr

【描述】

设置去雾属性参数

【语法】

CVI_S32 CVI_ISP_SetDehazeAttr(VI_PIPE ViPipe, const ISP_DEHAZE_ATTR_S *pstDehazeAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDehazeAttr

去雾属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

// Enable Dehaze and set strength as 100
VI_PIPE ViPipe = 0;
ISP_DEHAZE_ATTR_S attr;

CVI_ISP_GetDehazeAttr(ViPipe, &attr);
attr.Enable = CVI_TRUE;
attr.enOpType = OP_TYPE_AUTO;
attr. stAuto.Strength[0 /*ISO 100*/] = 100; // Strength=0-100
attr. stAuto.Strength[1 /*ISO 200*/] = 100; // Strength=0-100
...
attr. stAuto.Strength[15 /*ISO 3276800*/] = 100; // Strength=0-100
CVI_ISP_SetDehazeAttr(ViPipe, &attr);

【相关主题】

24.2.2. CVI_ISP_GetDehazeAttr

【描述】

获取去雾属性参数

【语法】

CVI_S32 CVI_ISP_GetDehazeAttr(VI_PIPE ViPipe, ISP_DEHAZE_ATTR_S *pstDehazeAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDehazeAttr

去雾属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

24.3. 数据类型

24.3.1. ISP_DEHAZE_MANUAL_ATTR_S

【说明】

去雾属性手动参数

【定义】

typedef struct _ISP_DEHAZE_MANUAL_ATTR_S {
  CVI_U8 Strength;
} ISP_DEHAZE_MANUAL_ATTR_S;

【成员】

成员名称

描述

Strength

用来控制Dehaze的强度。值越大,去雾强度越强。

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

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

24.3.2. ISP_DEHAZE_AUTO_ATTR_S

【说明】

去雾属性自动参数

【定义】

typedef struct _ISP_DEHAZE_AUTO_ATTR_S {
  CVI_U8 Strength[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_DEHAZE_AUTO_ATTR_S;

【成员】

成员名称

描述

Strength

用来控制Dehaze的强度。值越大,去雾强度越强。

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

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

24.3.3. ISP_DEHAZE_ATTR_S

【说明】

去雾属性参数

【定义】

typedef struct _ISP_DEHAZE_ATTR_S {
  CVI_BOOL Enable; /*RW; Range:[0, 1]*/
  ISP_OP_TYPE_E enOpType;
  CVI_U8 UpdateInterval; /*RW; Range:[0x1, 0xFF]*/
  CVI_U16 CumulativeThr; /*RW; Range:[0x0, 0x3fff]*/
  CVI_U16 MinTransMapValue; /*RW; Range:[0x0, 0x1fff]*/
  CVI_BOOL DehazeLumaEnable; /*RW; Range:[0, 1]*/
  CVI_BOOL DehazeSkinEnable; /*RW; Range:[0, 1]*/
  CVI_U8 AirLightMixWgt; /*RW; Range:[0x0, 0x20]*/
  CVI_U8 DehazeWgt; /*RW; Range:[0x0, 0x20]*/
  CVI_U8 TransMapScale; /*RW; Range:[0x0, 0xff]*/
  CVI_U8 AirlightDiffWgt; /*RW; Range:[0x0, 0x10]*/
  CVI_U16 AirLightMax; /*RW; Range:[0x0, 0xfff]*/
  CVI_U16 AirLightMin; /*RW; Range:[0x0, 0xfff]*/
  CVI_U8 SkinCb; /*RW; Range:[0x0, 0xff]*/
  CVI_U8 SkinCr; /*RW; Range:[0x0, 0xff]*/
  CVI_U16 DehazeLumaCOEFFI; /*RW; Range:[0x0, 0x7d0]*/
  CVI_U16 DehazeSkinCOEFFI; /*RW; Range:[0x0, 0x7d0]*/
  CVI_U8 TransMapWgtWgt; /*RW; Range:[0x0, 0x80]*/
  CVI_U8 TransMapWgtSigma; /*RW; Range:[0x0, 0xff]*/
  ISP_DEHAZE_MANUAL_ATTR_S stManual;
  ISP_DEHAZE_AUTO_ATTR_S stAuto;
} ISP_DEHAZE_ATTR_S;

【成员】

成员名称

描述

Enable

Dehaze功能使能

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

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO: 自动模式

OP_TYPE_MANUAL: 手动模式

UpdateInterval

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

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

数据类型: CVI_U8

CumulativeThr

计算雾浓度的统计阈值。默认值约为原始图像总像数个数的0.05%

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

数据类型: CVI_U16

MinTransMapValue

透射系数允许之最小值

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

数据类型: CVI_U16

DehazeLumaEnable

“根据亮度调整去雾强度功能使能

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

数据类型: CVI_BOOL

DehazeSkinEnable

“根据肤色调整去雾强度功能使能

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

数据类型: CVI_BOOL

AirLightMixWgt

Airlight 混和权重

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

数据类型: CVI_U8

DehazeWgt

Dehaze 输出混和权重

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

数据类型: CVI_U8

TransMapScale

透射系数增益

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

数据类型: CVI_U8

AirlightDiffWgt

Airlight

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

数据类型: CVI_U8

AirLightMax

Airlight 可允许之最大值

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

数据类型: CVI_U16

AirLightMin

Airlight 可允许之最小值

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

数据类型: CVI_U16

SkinCb

自定义肤色在 Cb domain 上的坐标

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

数据类型: CVI_U8

SkinCr

自定义肤色在 Cr domain 上的坐标

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

数据类型: CVI_U8

DehazeLumaCOEFFI

根据亮度控制去雾强度曲线,将亮度区分为16 阶。值越大,去雾强度越强

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

数据类型: CVI_U16

DehazeSkinCOEFFI

根据肤色控制去雾强度曲线,将亮度区分为16 阶。值越大,去雾强度越强

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

数据类型: CVI_U16

TransMapWgtWgt

透射系数增益控制,决定 Dehaze 结果与原图融合的权重曲线

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

数据类型: CVI_U8

TransMapWgtSigma

透射系数增益控制,决定 Dehaze 结果与原图融合的权重曲线

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

数据类型: CVI_U8

stManual

手动模式参数属性

stAuto

自动模式参数属性

【注意事项】

【相关数据类型及接口】