26. PFR¶
26.1. Functional Description¶
colordistortioncorrection, becausedifferentcolor lightrefractive indexdifferent, inheightbright regionandlowbright regionboundary objectaroundeasyshapebecomepurple fringe, usingthismoduleimplementimageremovepurple fringefunction, improveimageedge purple fringecurrentimage
26.2. API Reference¶
CVI_ISP_SetPFRAttr : SetPFRattribute parameters
CVI_ISP_GetPFRAttr : GetPFRattribute parameters
26.2.1. CVI_ISP_SetPFRAttr¶
[Description]
SetPFRattribute parameters
[Syntax]
CVI_S32 CVI_ISP_SetPFRAttr(VI_PIPE ViPipe, const ISP_PFR_ATTR_S *pstPFRAttr);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
ViPipe |
VI_PIPE No. |
Input |
pstPFRAttr |
PFRattribute parameters |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success |
Non-zero |
Failure, whose value is Error Code. |
[Requirements]
Header File: cvi_isp.h, cvi_comm_isp.h
Library File: libisp.so
[Note]
None
[Example]
VI_PIPE ViPipe = 0;
ISP_PFR_ATTR_S stAttr;
CVI_ISP_GetPFRAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetPFRAttr(ViPipe, &stAttr);
[Related Topics]
26.2.2. CVI_ISP_GetPFRAttr¶
[Description]
GetPFRattribute parameters
[Syntax]
CVI_S32 CVI_ISP_GetPFRAttr(VI_PIPE ViPipe, ISP_PFR_ATTR_S *pstPFRAttr);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
ViPipe |
VI_PIPE No. |
Input |
pstPFRAttr |
PFRattribute parameters |
output |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success |
Non-zero |
Failure, whose value is Error Code. |
[Requirements]
Header File: cvi_isp.h, cvi_comm_isp.h
Library File: libisp.so
[Note]
None
[Example]
None
[Related Topics]
26.3. Data Types¶
ISP_PFR_MANUAL_ATTR_S : Manual DefinitionPFRattribute parameters
ISP_PFR_AUTO_ATTR_S : Automatic DefinitionPFRattribute parameters
ISP_PFR_ATTR_S : Defines PFR attribute parameters
26.3.1. ISP_PFR_MANUAL_ATTR_S¶
[Description]
Manual DefinitionPFRattribute parameters
[Definition]
typedef struct _ISP_PFR_MANUAL_ATTR_S {
CVI_U8 LumaIniVal; /*Rw; Range:[0, 255]*/
CVI_U8 LumLevelTh; /*Rw; Range:[0, 255]*/
CVI_U8 LumLevelLut[PFR_LUMA_LEVEL]; /*Rw; Range:[0, 255]*/
} ISP_PFR_MANUAL_ATTR_S;
[Members]
Member Name |
Description |
|---|---|
LumaIniVal |
Luma initialvalue. recommendednotneedadjust. Value Range: [0, 255] Data Types: CVI_U8 |
LumLevelTh |
Luma threshold. largeinthisthreshold remove in the regionpurple fringeReferenceLumainformation. Value Range: [0, 255] Data Types: CVI_U8 |
LumLevelLut |
Luma level insertvalueLUTtable, Generallynotneed tomorechange. Value Range: [0, 255] Data Types: CVI_U8 |
[Precautions]
None
[Related Data Types and Interfaces]
26.3.2. ISP_PFR_AUTO_ATTR_S¶
[Description]
Automatic DefinitionPFRattribute parameters
[Definition]
typedef struct _ISP_PFR_AUTO_ATTR_S {
CVI_U8 LumaIniVal[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 LumLevelTh[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 LumLevelLut[PFR_LUMA_LEVEL][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_PFR_AUTO_ATTR_S;
[Members]
Member Name |
Description |
|---|---|
LumaIniVal |
Luma initialvalue. recommendednotneedadjust. Value Range: [0, 255] Data Types: CVI_U8 |
LumLevelTh |
Luma threshold. largeinthisthreshold remove in the regionpurple fringeReferenceLumainformation. Value Range: [0, 255] Data Types: CVI_U8 |
LumLevelLut |
Luma level insertvalueLUTtable, Generallynotneed tomorechange. Value Range: [0, 255] Data Types: CVI_U8 |
[Precautions]
None
[Related Data Types and Interfaces]
26.3.3. ISP_PFR_ATTR_S¶
[Description]
Defines PFR attribute parameters
[Definition]
typedef struct _ISP_PFR_ATTR_S {
CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
ISP_OP_TYPE_E enOpType;
CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
CVI_BOOL TuningMode; /*Rw; Range:[0, 1]*/
CVI_BOOL LumaEN; /*Rw; Range:[0, 1]*/
CVI_BOOL UVENLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 1]*/
CVI_BOOL HueENLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 1]*/
CVI_U8 ULut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 VLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 UVDiffThLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 UVDiffLut0[PFR_COLOR_LUT_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 UVDiffLut1[PFR_COLOR_LUT_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 RWetLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 BWetLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
CVI_U16 HueLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 359]*/
CVI_U8 HueRngLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 HueTh; /*Rw; Range:[0, 255]*/
CVI_U8 EdgeThLut[PFR_EDGE_LUT_NUM]; /*Rw; Range:[0, 255]*/
CVI_U8 GDiffLut[PFR_COLOR_LUT_NUM]; /*Rw; Range:[0, 127]*/
ISP_PFR_MANUAL_ATTR_S stManual;
ISP_PFR_AUTO_ATTR_S stAuto;
} ISP_PFR_ATTR_S;
[Members]
Member Name |
Description |
|---|---|
Enable |
module enable switch Value Range: [0, 1] Data Types: CVI_BOOL |
enOpType |
operation type OP_TYPE_AUTO: automatic mode OP_TYPE_MANUAL: manual mode Data Types: ISP_OP_TYPE_E |
UpdateInterval |
affects the parameter update interval,the larger the value, the slower the image changes,the better the performance. Value Range: [0, 255] Data Types: CVI_U8 |
TuningMode |
None Value Range: [0, 1] Data Types: CVI_BOOL |
LumaEN |
removepurple fringeprocessingwhen, Referencelumainformationfunction enable. purple fringepassoftenandLumainformationrelated, recommendedopenenable. 0: Disable. 1: Enable. Value Range: [0, 1] Data Types: CVI_BOOL |
UVENLut |
Referencecustompurple fringeUVvalueEnable. cansupportcustomtwogroupUVvalue, byULut, VLutDefine . 0: Disable. 1: Enable. Value Range: [0, 1] Data Types: CVI_BOOL |
HueENLut |
Referencecustompurple fringeHuevalueEnable. cansupportcustomtwogroupHuevalue, byHueLutDefine . 0: Disable. 1: Enable. Value Range: [0, 1] Data Types: CVI_BOOL |
ULut |
calibration purple fringe twogroupUvalue. oneversion caseundernotrecommendedmodifydefaultvalue. differentISOordifferentsceneunder, whenpurple fringecoloranddefaultvaluedifferencerelativelylarge, canaccording tocasemodify. Value Range: [0, 255] Data Types: CVI_U8 |
VLut |
calibration purple fringe twogroupVvalue. oneversion caseundernotrecommendedmodifydefaultvalue. differentISOordifferentsceneunder, whenpurple fringecoloranddefaultvaluedifferencerelativelylarge, canaccording tocasemodify. Value Range: [0, 255] Data Types: CVI_U8 |
UVDiffThLut |
None Value Range: [0, 255] Data Types: CVI_U8 |
UVDiffLut0 |
None Value Range: [0, 255] Data Types: CVI_U8 |
UVDiffLut1 |
None Value Range: [0, 255] Data Types: CVI_U8 |
RWetLut |
None Value Range: [0, 255] Data Types: CVI_U8 |
BWetLut |
None Value Range: [0, 255] Data Types: CVI_U8 |
HueLut |
calibration purple fringe twogroupHuevalue. oneversion caseundernotrecommendedmodifydefaultvalue. differentISOordifferentsceneunder, whenpurple fringeHuevalueanddefaultvaluedifferencerelativelylarge, canaccording tocasemodify. Value Range: [0, 359] Data Types: CVI_U16 |
HueRngLut |
andcalibration Huevaluecanisallow differencerange. exceedoutputthisthresholdconsideriscompleteallbiasdistancecalibrationvalue; inrangeinsideandHUEcalibrationvalue distancethe morenearispurplecolor probabilityratethe morelarge. rangeadjusttoolargewilleliminatemoremultiple color, adjusttoosmallcancanwillremovenotall. Value Range: [0, 255] Data Types: CVI_U8 |
HueTh |
whetheruseHuecorrectafterpixel threshold. smallinetc.inthisthresholdconsiderisuseHuecorrectafter pixel; largeinthisthresholduseoriginalpixelandcorrectafterpixelblendofafterresult Value Range: [0, 255] Data Types: CVI_U8 |
EdgeThLut |
according totexturelargesmallperformpartsegment, usingthislook upcorresponding Edge Weigting. Value Range: [0, 255] Data Types: CVI_U8 |
GDiffLut |
Gradient matchmoduleincalculateGchanneldifference LUT, oneversionnotneed tomorechange. wholeLUTpartsegmentopenstartandend the smaller the value, determinethe moreaggressiveenter, purple fringeeliminateeffectthe morestrong Value Range: [0, 127] Data Types: CVI_U8 |
stManual |
manual parameters |
stAuto |
automatic parameters |
[Precautions]
None
[Related Data Types and Interfaces]