Gaussisk oskärpa i digital bildbehandling är ett sätt att göra en bild suddig med den Gaussiska funktionen , uppkallad efter den tyske matematikern Carl Friedrich Gauss .
Denna effekt används ofta i grafikredigerare för att minska bildbrus och detaljer. Den visuella effekten av denna oskärpa metod liknar effekten av att titta på en bild genom en genomskinlig skärm, och skiljer sig tydligt från bokeh-effekten som skapas av en oskärpa lins eller skuggan av ett objekt i normal belysning.
Gaussisk oskärpa används också som ett förbearbetningssteg i datorseendealgoritmer för att förbättra bildstrukturen i olika skalor.
Att applicera en Gaussisk oskärpa på en bild liknar matematiskt att konvolvera en bild med den Gaussiska funktionen . Den är också känd som 2D Weierstrass-transformen. Cyklisk faltning (dvs. cirkulär oskärpa runt ramen), tvärtom, återger bokeh- effekten mer exakt .
Eftersom Fouriertransformen av en Gauss-funktion i sig är en Gauss-funktion, resulterar applicering av Gaussisk oskärpa i en minskning av högfrekventa komponenter i bilden. Gaussisk oskärpa är alltså ett lågpassfilter .
I denna oskärpa metod används Gauss-funktionen (som också används för att beskriva normalfördelningen i sannolikhetsteori ) för att beräkna transformationen som ska tillämpas på varje pixel i bilden. Gaussisk funktionsformel i en dimension:
.I två dimensioner är detta produkten av två Gaussiska funktioner, en för varje dimension:
[2] [3] .där x , y är punktens koordinater och σ är standardavvikelsen för normalfördelningen. När den appliceras i två dimensioner ger denna formel en yta vars konturer är normalt fördelade koncentriska cirklar runt en central punkt.
Värdena för denna distribution används för att konstruera en faltningsmatris som appliceras på originalbilden. Det nya värdet för varje pixel ställs in på det viktade medelvärdet av den pixelns grannskap. Värdet på den ursprungliga pixeln får mest vikt (har det högsta Gaussiska värdet), och närliggande pixlar får lägre vikt när deras avstånd från den ursprungliga pixeln ökar. Detta resulterar i en oskärpa som bevarar kanter och kanter bättre än andra, mer enhetliga oskärpa filter.
Teoretiskt kommer den Gaussiska funktionen vid varje punkt i bilden att vara icke-noll, vilket innebär att hela bilden är inblandad i att beräkna värdet för varje pixel. I praktiken, när man beräknar den diskreta approximationen av Gauss-funktionen, har pixlar på ett avstånd av mer än 3 σ en ganska liten effekt på den, så de kan betraktas som praktiskt taget noll. Således kan pixelvärden utanför detta intervall ignoreras. Vanligtvis behöver ett bildbehandlingsprogram bara beräkna en matris med dimensionerna × (där är avrundningsfunktionen ) för att garantera ett resultat som är tillräckligt nära det resultat som erhålls med den fullständiga Gauss-fördelningen.
Förutom cirkulär symmetri kan Gaussisk oskärpa appliceras på en 2D-bild som två oberoende 1D-beräkningar och är därför ett separerbart filter. Detta innebär att effekten av att applicera en 2D-matris också kan uppnås genom att applicera en serie 1D-matriser i horisontell riktning och sedan upprepa processen i vertikal riktning. Ur beräkningssynpunkt är detta en användbar egenskap, eftersom beräkningen kan utföras i tid , där h är höjden och w är bredden, till skillnad från när man använder en oskiljaktig kärna.
Att applicera på varandra följande Gaussoskärpa på en bild har samma effekt som att tillämpa en större Gaussoskärpa vars radie är kvadratroten av summan av kvadraterna av de suddighetsradier som faktiskt tillämpas. Till exempel, att applicera på varandra följande Gaussoskärpa med radier på 6 och 8 ger samma resultat som att tillämpa en Gaussoskärpa med radie 10, eftersom . På grund av detta förhållande kan bearbetningstid inte sparas genom att simulera en Gaussisk oskärpa med successiva mindre oskärpa - tiden som krävs kommer att vara åtminstone densamma som när du utför en enda stor oskärpa.
Gaussisk oskärpa används ofta när du minskar storleken på en bild. Vid nedsampling av en bild före omsampling används vanligtvis ett lågpassfilter på bilden. Detta är nödvändigt för att förhindra uppkomsten av falsk högfrekvent information i den delsamplade bilden ( aliasing ). Gaussisk oskärpa har bra egenskaper som inga skarpa kanter och därför inga ringartefakter i den filtrerade bilden.
Gaussisk oskärpa är ett lågpassfilter som dämpar högfrekventa signaler [3] .
Dess logaritmiska frekvenssvar ( log- frekvens - domänskala ) är en parabel .
Hur mycket jämnar ett Gaussiskt filter med standardavvikelse ut bilden? Med andra ord, hur mycket kommer denna utjämning att minska standardavvikelsen för pixelvärdena i bilden? Antag att pixelvärden i gråskala har en standardavvikelse , så efter applicering av filtret kan den reducerade standardavvikelsen approximeras enligt följande:
.Denna matris skapas genom att sampla den Gaussiska filterkärnan (med σ = 0,84089642) vid mittpunkterna av varje pixel och sedan normalisera den. Det centrala elementet (4,4) har det största värdet, de återstående elementen minskar symmetriskt när avståndet från centrum ökar.
[ 0,000 00067 0,000 02292 0,00019117 0,000 38771 0,00019117 0,000 02292 0,000 00067 0,000 02292 0,000 78633 0,006 55965 0,013 30373 0,006 55965 0,000 78633 0,000 02292 0,00019117 0,006 55965 0,054 72157 0,110 98164 0,054 72157 0,006 55965 0,00019117 0,000 38771 0,013 30373 0,110 98164 0,22508352 0,110 98164 0,013 30373 0,000 38771 0,00019117 0,006 55965 0,054 72157 0,110 98164 0,054 72157 0,006 55965 0,00019117 0,000 02292 0,000 78633 0,006 55965 0,013 30373 0,006 55965 0,000 78633 0,000 02292 0,000 00067 0,000 02292 0,00019117 0,000 38771 0,00019117 0,000 02292 0,000 00067 ] {\displaystyle {\begin{bmatrix}0{,}00000067&0{,}00002292&{\textbf {0.00019117}}&0{,}00038771&{\textbf {0.00019117}}&0{,2}06\0{,2}00\0{,2}06 ,}00002292&0{,}00078633&0{,}00655965&0{,}01330373&0{,}00655965&0{,}00078633&0{,}00002292\\\{\textb}01{01}&50}501{01}601&01 }11098164&0{,}05472157&0{,}00655965&{\textbf {0.00019117}}\\0{,}00038771&0{,}01330373&0{,}11098164&{0}11098164&{0}11098164&{0}11098164&{0}11098164&{0}11098164&{0}11098164 }00038771\\{\textbf {0.00019117}}&0{,}00655965&0{,}05472157&0{,}11098164&0{,}05472157&0\{,}00655965&0{,}006505965}&{0}&text 00078633&0{,}00655965&0{,}01330373&0{,}00655965&0{,}00078633&0{,}00002292\\0{,}00000067&0{,}00655965&0{,}00078633&0{,}00002292\\0{,}00000067&0{,}00000067&0{,}000009&0{,2}02002{01}text\91b{01}&text\7b{01}f} }&0{,}00002292&0{,}00000067\end{bmatrix}}}Element 0,22508352 (central) är 1177 gånger större än 0,00019117, vilket är strax utanför 3σ.
Den Gaussiska oskärpa effekten skapas vanligtvis genom att en bild konvolveras med en FIR-kärna med hjälp av Gaussiska funktionsvärden.
I praktiken är det bäst att använda separerbarhetsegenskapen för Gaussisk oskärpa och utföra processen i två omgångar. Det första passet använder en endimensionell kärna för att göra bilden suddig endast i horisontell eller vertikal riktning. I det andra passet används samma endimensionella kärna för att sudda åt andra hållet. Nettoeffekten är densamma som faltning med en 2D-kärna i ett pass, men det kräver mindre beräkning.
Diskretion uppnås vanligtvis genom att välja diskreta punkter, vanligtvis vid positioner som motsvarar mittpunkterna för varje pixel. Detta minskar beräkningskostnaden, men för mycket små filterkärnor leder punktsampling av Gauss-funktionen med ett mycket litet antal sampel till ett stort fel.
I dessa fall bibehålls noggrannheten (med liten beräkningskostnad) genom att integrera Gauss-funktionen över arean för varje pixel [4] .
När du konverterar kontinuerliga värden för Gauss-funktionen till diskreta värden som krävs för kärnan, kommer summan av värdena att skilja sig från 1. Detta kommer att göra bilden mörkare eller ljusare. För att korrigera denna effekt kan värdena normaliseras genom att dividera varje element i kärnan med summan av alla element.
Effektiviteten för FIR minskar för höga värden på σ. Det finns alternativ till FIR-filtret. Dessa inkluderar mycket snabb multipelboxoskärpa, Deriches snabba och exakta IIR -kantdetektor, boxoskärpa baserad "stackoskärpa" och mer [5] .
Gaussisk utjämning används vanligtvis för kantdetektering . De flesta kantdetekteringsalgoritmer är känsliga för brus. Det tvådimensionella Laplace-filtret, byggt på basis av diskretisering av Laplace-operatören , är mycket känsligt för bullriga miljöer.
Användningen av ett Gaussiskt oskärpafilter före kantdetektering syftar till att minska brusnivån i bilden, vilket förbättrar resultatet av det efterföljande arbetet med kantdetekteringsalgoritmen. Detta tillvägagångssätt kallas vanligen Gaussisk Laplacian eller LoG-filtrering [6] .
Digitalkameror av låg kvalitet , inklusive många mobiltelefonkameror , använder vanligtvis Gaussisk oskärpa för att dölja bildbrus som orsakas av högre ISO - hastigheter.
Gaussisk oskärpa appliceras automatiskt som en del av efterbehandlingen av bilden av kamerans programvara, vilket resulterar i en permanent förlust av detaljer [7] .