在圖像處理中,自動曝光算法對于提升圖像質(zhì)量至關(guān)重要,特別是在光線變化復(fù)雜的環(huán)境下。本文將詳細(xì)介紹并優(yōu)化兩種自動曝光算法:SaliencySA 和 ExtremeColorSA,通過調(diào)整曝光參數(shù)以適應(yīng)不同的光照條件和顏色特性。
SaliencySA
SaliencySALuma=NormalizedWeightedSum(SaliencyLuma,FrameLumaBE16x16)
SaliencySATarget=[setparam/tr:lux]
SaliencySALumaWeight=[setparam/tr:lux+TriggerCtrlSaliencyValue]
SaliencySAFrameWeight=1-SaliencySALumaWeight
SaliencySAAdjRatioSaliency=SaliencySATarget/SaliencySALuma
SaliencySAAdjRatioHigh=[setparam/tr:lux]/SaliencyHighPCTLLuma
SaliencySAAdjRatioLow=[setparam/tr:lux]/SaliencyLowPCTLLuma
SaliencySAAdjRatioMin=Min(SaliencySAAdjRatioSaliency,1.0,[setparam/tr:lux+SaliencySAAdjRatioHigh])
SaliencySAAdjRatioMin=Max(SaliencySAAdjRatioSaliency*0.4,SaliencySAAdjRatioMin)
SaliencySAAdjRatioMax=Max(SaliencySAAdjRatioSaliency,[setparam/tr:lux+SaliencySAAdjRatioLow])
SaliencySAAdjRatioMax=Min(SaliencySAAdjRatioSaliency*1.5,SaliencySAAdjRatioMax)
SaliencySAAdjRatioSel=(SaliencySAAdjRatioMin*[setparam/tr:lux+SaliencySAAdjRatioSaliency])/(SaliencySAAdjRatioMax*[setparam/tr:lux+SaliencySAAdjRatioSaliency]
SaliencySAAdjRatioFSATgt=(SaliencySAAdjRatioSel*FrameSALuma)/FrameSATarget
SaliencySAAdjRatio=[setparam/tr:lux+SaliencySAAdjRatioFSATgt]*FrameSATarget/FrameSALuma
SaliencySA 算法主要基于圖像的顯著性(Saliency)和亮度(Luma)來調(diào)整曝光參數(shù),以達到最佳的視覺效果。以下是該算法的詳細(xì)優(yōu)化步驟:
- 計算顯著性亮度權(quán)重
SaliencySALuma = NormalizedWeightedSum(SaliencyLuma, FrameLumaBE16x16)
SaliencySALumaWeight = setparam['tr:lux'] + TriggerCtrlSaliencyValue
SaliencySAFrameWeight = 1 - SaliencySALumaWeight
這里,SaliencyLuma 表示圖像的顯著性亮度圖,F(xiàn)rameLumaBE16x16 是圖像塊的亮度信息。通過調(diào)整顯著性亮度的權(quán)重,可以更好地控制曝光調(diào)整的方向。 - 計算曝光調(diào)整比例
SaliencySATarget = setparam['tr:lux']
SaliencySAAdjRatioSaliency = SaliencySATarget / SaliencySALuma
SaliencySAAdjRatioHigh = setparam['tr:lux'] / SaliencyHighPCTLLuma
SaliencySAAdjRatioLow = setparam['tr:lux'] / SaliencyLowPCTLLuma
SaliencySAAdjRatioMin = min(SaliencySAAdjRatioSaliency, 1.0, setparam['tr:lux'] + SaliencySAAdjRatioHigh)
SaliencySAAdjRatioMin = max(SaliencySAAdjRatioSaliency * 0.4, SaliencySAAdjRatioMin)
SaliencySAAdjRatioMax = max(SaliencySAAdjRatioSaliency, setparam['tr:lux'] + SaliencySAAdjRatioLow)
SaliencySAAdjRatioMax = min(SaliencySAAdjRatioSaliency * 1.5, SaliencySAAdjRatioMax)
SaliencySAAdjRatioSel = (SaliencySAAdjRatioMin * (setparam['tr:lux'] + SaliencySAAdjRatioSaliency)) / (SaliencySAAdjRatioMax * (setparam['tr:lux'] + SaliencySAAdjRatioSaliency))
SaliencySAAdjRatioFSATgt = (SaliencySAAdjRatioSel * FrameSALuma) / FrameSATarget
SaliencySAAdjRatio = (setparam['tr:lux'] + SaliencySAAdjRatioFSATgt) * FrameSATarget / FrameSALuma
通過計算一系列調(diào)整比例,確保曝光調(diào)整既不過度也不過低,同時考慮了圖像的高亮和低亮區(qū)域。
ExtremeColorSA
ExtremeColorSALuma=FrameSALuma
ExtremeColorSATarget=ExtremeColorFinalTarget
ExtremeColorGreemZoneSum=ExtremeGreenColorZone1Ratio+ExtremeGreenColorZone2Ratio+ExtremeGreenColorZone3Ratio
ExtremeColorLargestRatio=Largest(ExtremeRedColorRatio,ExtremeColorGreemZoneSum,ExtremeBlueColorRatio,0.0)
ExtremeColorRedTargetAdj=[setparam/tr:lux+ExtremeRedColorRatio]
ExtremeColorGreenTargetAdj=[setparam/tr:lux+ExtremeColorGreenZoneSum]
ExtremeColorBlueTargetAdj=[setparam/tr:lux+ExtremeColorBlueZoneSum]
ExtremeColorSmallestTargetAdj=Smallest(ExtremeColorRedTargetAdj,ExtremeColorGreenTargetAdj,ExtremeColorBlueTargetAdj,1.0)
ExtremeColorFinalTarget=FrameSATarget*ExtremeColorSmallestTargetAdj
ExtremeColorSAAdjRatio=ExtremeColorSATarget/ExtremeColorSALuma
ExtremeColorSA 算法專注于通過調(diào)整顏色通道(紅、綠、藍)的曝光目標(biāo)來改善圖像的色彩表現(xiàn)。首先,計算了綠色區(qū)域的權(quán)重總和和最大的顏色區(qū)域比例。其次,基于各顏色區(qū)域的相對重要性,調(diào)整每個顏色通道的目標(biāo)曝光值。最終,根據(jù)調(diào)整后的顏色目標(biāo)和當(dāng)前顏色亮度,計算出顏色曝光調(diào)整。