Histogrammatchning
Vid bildbehandling är histogrammatchning eller histogramspecifikation transformationen av en bild så att dess histogram matchar ett specificerat histogram . Den välkända histogramutjämningsmetoden är ett specialfall där det specificerade histogrammet är jämnt fördelat .
Det är möjligt att använda histogrammatchning för att balansera detektorsvar som en relativ detektorkalibreringsteknik. Den kan användas för att normalisera två bilder, när bilderna förvärvades vid samma lokala belysning (som skuggor) över samma plats, men av olika sensorer, atmosfäriska förhållanden eller global belysning.
Genomförande
Betrakta en gråskaleinmatningsbild X. Den har en sannolikhetstäthetsfunktion p r (r), där r är ett gråskalevärde och p r (r) är sannolikheten för det värdet. Denna sannolikhet kan enkelt beräknas från bildens histogram genom
Där n j är frekvensen för gråskalevärdet rj och n är det totala antalet pixlar i bilden.
Betrakta nu en önskad utmatningssannolikhetstäthetsfunktion pz ( z). En transformation av p r (r) behövs för att omvandla den till p z (z).
Varje pdf (sannolikhetstäthetsfunktion) kan enkelt mappas till sin kumulativa distributionsfunktion av
Där L är det totala antalet grånivåer (256 för en standardbild).
Tanken är att mappa varje r-värde i X till z-värdet som har samma sannolikhet i den önskade pdf-filen . Dvs S ( r j ) = G ( z i ) eller z = G −1 ( S ( r )).
Exempel
Följande ingående gråskalebild ska ändras för att matcha referenshistogrammet.
Ingångsbilden har följande histogram
Det kommer att matchas till detta referenshistogram för att betona de lägre grånivåerna.
Efter matchning har den utgående bilden följande histogram
Och ser ut så här
Algoritm
Med tanke på två bilder, referensen och målbilderna, beräknar vi deras histogram. I det följande beräknar vi de kumulativa fördelningsfunktionerna för de två bildernas histogram – för referensbilden och för målbilden. Sedan för varje grånivå hittar vi grånivån för vilken och detta är resultatet av histogrammatchningsfunktionen: . Slutligen tillämpar vi funktionen på varje pixel i referensbilden.
Exakt histogrammatchning
I typiska verkliga tillämpningar, med 8-bitars pixelvärden (diskreta värden inom intervallet [0, 255]), kan histogrammatchning endast approximera det angivna histogrammet. Alla pixlar med ett visst värde i originalbilden måste omvandlas till bara ett värde i utdatabilden.
Exakt histogrammatchning är problemet med att hitta en transformation för en diskret bild så att dess histogram exakt matchar det angivna histogrammet. Flera tekniker har föreslagits för detta. Ett förenklat tillvägagångssätt konverterar den diskreta bilden till en bild med kontinuerligt värde och lägger till små slumpmässiga värden till varje pixel så att deras värden kan rangordnas utan kopplingar. Detta introducerar dock brus till den utgående bilden.
På grund av detta kan det finnas hål eller öppna fläckar i det utmatade histogrammet.
Matchning av flera histogram
Histogrammatchningsalgoritmen kan utökas för att hitta en monoton mappning mellan två uppsättningar histogram. Givet två uppsättningar histogram och den optimala monotona färgmappningen beräknas för att minimera avståndet mellan de två uppsättningarna samtidigt, nämligen där är ett avståndsmått mellan två histogram. Den optimala lösningen beräknas med hjälp av dynamisk programmering .