24. Dehaze¶
24.1. 功能描述¶
藉由计算雾的浓度,从而自动调整对比度、饱和度以达到去雾的效果。
24.2. API 参考¶
CVI_ISP_SetDehazeAttr: 设置去雾属性参数
CVI_ISP_GetDehazeAttr: 获取去雾属性参数
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. 数据类型¶
ISP_DEHAZE_MANUAL_ATTR_S: 去雾属性手动参数
ISP_DEHAZE_AUTO_ATTR_S: 去雾属性自动参数
ISP_DEHAZE_ATTR_S: 去雾属性参数
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 |
自动模式参数属性 |
【注意事项】
无
【相关数据类型及接口】