19. SHARPEN

19.1. 功能描述

此模块用于增强图像清晰度,位于3DNR之后,主要锐化图像中的大边缘。

19.2. API 参考

19.2.1. CVI_ISP_SetSharpenAttr

【描述】

设置Sharpen 参数属性

【语法】

CVI_S32 CVI_ISP_SetSharpenAttr(VI_PIPE ViPipe, const ISP_SHARPEN_ATTR_S *pstSharpenAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstSharpenAttr

Sharpen 参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_SHARPEN_ATTR_S stAttr;
CVI_ISP_GetSharpenAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetSharpenAttr(ViPipe, &stAttr);

【相关主题】

19.2.2. CVI_ISP_GetSharpenAttr

【描述】

获取Sharpen 参数属性

【语法】

CVI_S32 CVI_ISP_GetSharpenAttr(VI_PIPE ViPipe, ISP_SHARPEN_ATTR_S *pstSharpenAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstSharpenAttr

Sharpen 参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

19.3. 数据类型

19.3.1. ISP_SHARPEN_MANUAL_ATTR_S

【说明】

定义手动Sharpen 参数属性

【定义】

typedef struct _ISP_SHARPEN_MANUAL_ATTR_S {
        CVI_U8 EE1CoringThr; /*Rw; Range:[0, 255]*/
        CVI_U8 NoiseBase; /*Rw; Range:[0, 255]*/
        CVI_U8 EE2BalanceRatio; /*Rw; Range:[0, 255]*/
        CVI_U8 EE2SharpStr; /*Rw; Range:[0, 255]*/
        CVI_U8 EE2CoringThr; /*Rw; Range:[0, 255]*/
        CVI_U8 OverShootRatio; /*Rw; Range:[0, 255]*/
        CVI_U8 UnderShootRatio; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1BlendWgt; /*Rw; Range:[0, 8]*/
        CVI_U16 EE1FlatThr; /*Rw; Range:[0, 2047]*/
        CVI_U16 EE1EdgeThr; /*Rw; Range:[0, 2047]*/
        CVI_U8 EE1FlatRegionStr; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1EdgeRegionStr; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1MotionStr; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1StaticStr; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1TransStr; /*Rw; Range:[0, 255]*/
        CVI_U8 NoiseLut[17]; /*Rw; Range:[0, 255]*/
        CVI_U8 HueShtCtrl[33]; /*Rw; Range:[0, 63]*/
        CVI_U8 SatShtGainIn[4]; /*Rw; Range:[0, 255]*/
        CVI_U8 SatShtGainOut[4]; /*Rw; Range:[0, 128]*/
} ISP_SHARPEN_MANUAL_ATTR_S;

【成员】

成员名称

描述

EE1CoringThr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

NoiseBase

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE2BalanceRatio

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE2SharpStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE2CoringThr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

OverShootRatio

白边抑制。值越小,白边抑制程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

UnderShootRatio

黑边抑制。值越小,黑边抑制程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

EE1BlendWgt

待完善

取值范围: [0, 8]

数据类型: CVI_U8

EE1FlatThr

待完善

取值范围: [0, 2047]

数据类型: CVI_U16

EE1EdgeThr

待完善

取值范围: [0, 2047]

数据类型: CVI_U16

EE1FlatRegionStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1EdgeRegionStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1MotionStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1StaticStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1TransStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

NoiseLut

噪声强度设定。根据亮度不同,设置不同的噪声强度。噪声强度越大,锐化强度越小。

取值范围: [0, 255]

数据类型: CVI_U8

HueShtCtrl

基于指定的色彩做边缘增强

取值范围: [0, 63]

数据类型: CVI_U8

SatShtGainIn

基于指定的饱和度做边缘增强,此为输入节点,输入饱和度。

取值范围: [0, 255]

数据类型: CVI_U8

SatShtGainOut

基于指定的饱和度做边缘增强,此为输出节点,输出对应饱和度的边缘强度。

取值范围: [0, 128]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

19.3.2. ISP_SHARPEN_AUTO_ATTR_S

【说明】

定义自动Sharpen 参数属性

【定义】

typedef struct _ISP_SHARPEN_AUTO_ATTR_S {
        CVI_U8 EE1CoringThr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 NoiseBase[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE2BalanceRatio[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE2SharpStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE2CoringThr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 OverShootRatio[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 UnderShootRatio[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1BlendWgt[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 8]*/
        CVI_U16 EE1FlatThr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 2047]*/
        CVI_U16 EE1EdgeThr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 2047]*/
        CVI_U8 EE1FlatRegionStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1EdgeRegionStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1MotionStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1StaticStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 EE1TransStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 NoiseLut[17][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 HueShtCtrl[33][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 63]*/
        CVI_U8 SatShtGainIn[4][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 SatShtGainOut[4][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 128]*/
} ISP_SHARPEN_AUTO_ATTR_S;

【成员】

成员名称

描述

EE1CoringThr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

NoiseBase

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE2BalanceRatio

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE2SharpStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE2CoringThr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

OverShootRatio

白边抑制。值越小,白边抑制程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

UnderShootRatio

黑边抑制。值越小,黑边抑制程度越大。

取值范围: [0, 255]

数据类型: CVI_U8

EE1BlendWgt

待完善

取值范围: [0, 8]

数据类型: CVI_U8

EE1FlatThr

待完善

取值范围: [0, 2047]

数据类型: CVI_U16

EE1EdgeThr

待完善

取值范围: [0, 2047]

数据类型: CVI_U16

EE1FlatRegionStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1EdgeRegionStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1MotionStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1StaticStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

EE1TransStr

待完善

取值范围: [0, 255]

数据类型: CVI_U8

NoiseLut

噪声强度设定。根据亮度不同,设置不同的噪声强度。噪声强度越大,锐化强度越小。

取值范围: [0, 255]

数据类型: CVI_U8

HueShtCtrl

基于指定的色彩做边缘增强

取值范围: [0, 63]

数据类型: CVI_U8

SatShtGainIn

基于指定的饱和度做边缘增强,此为输入节点,输入饱和度。

取值范围: [0, 255]

数据类型: CVI_U8

SatShtGainOut

基于指定的饱和度做边缘增强,此为输出节点,输出对应饱和度的边缘强度。

取值范围: [0, 128]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

19.3.3. ISP_SHARPEN_ATTR_S

【说明】

定义Sharpen 参数属性

【定义】

typedef struct _ISP_SHARPEN_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[1, 255]*/
        CVI_U8 TuningMode; /*Rw; Range:[0, 7]*/
        CVI_BOOL MotionEn; /*Rw; Range:[0, 1]*/
        CVI_BOOL SatShtCtrlEn; /*Rw; Range:[0, 1]*/
        ISP_EE_FILTER_SIZE_TYPE_E enFilterType;
        ISP_EE_WEIGHT_SRC_TYPE_E EE1SrcType;
        ISP_SHARPEN_MANUAL_ATTR_S stManual;
        ISP_SHARPEN_AUTO_ATTR_S stAuto;
} ISP_SHARPEN_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [1, 255]

数据类型: CVI_U8

TuningMode

输出调试方案,辅助调节参数

0=normal; 1=EdgeEnergy; 2=EdgeWeight; 3=Enhance; 4=ReguinClass; 5=Edgevalue, 6=EdgeNoRefine

取值范围: [0, 7]

数据类型: CVI_U8

MotionEn

根据运动状态不同,调整锐化强度的使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

SatShtCtrlEn

由饱和度调整边缘增强的使能

取值范围: [0, 1]

数据类型: CVI_BOOL

enFilterType

Filter SIZE 类型

OP_TYPE_3x3: 3x3 核;

OP_TYPE_5x5: 5x5 核;

数据类型: ISP_EE_FILTER_SIZE_TYPE_E

EE1SrcType

WEIGHT SRC 类型

数据类型: ISP_EE_WEIGHT_SRC_TYPE_E

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】