Pytanie dotyczy obrazowania funkcji dwuargumentowej, taką funkcją jest między innymi spektrogram. Pierwszy argument to oś pozioma (kolumna pikseli), drugi to oś pionowa (wiersz pikseli), a wartość jest reprezentowana przez jasność piksela.

Załóżmy, ze funkcja przyjmuje wartości liczb rzeczywistych od 0.0 do 1.0, więc wartość trzeba pomnożyć przez 255.0, zaokrąglić do całości i mamy jasność piksela.

Jednaj jest tu pewien problem. Na przykład wartość 0.5 nie odpowiada wartości piksela 128 i można to stwierdzić korzystając z obrazu zawierającego szachownicą białych i czarnych pikseli. Zauważyłem, że przy zastosowaniu korekcji gamma 2.2 wartość 0.5 odpowiada połowie jasności. Wobec tego wartość funkcji muszę podnieść do potęgi (1/2.2) równej w przybliżeniu 0.4545, a potem pomnożyć przez 255.0 (można przygotować LUT, żeby za każdym razem nie przeliczać, a wartość funkcji mnożyć przez na przykład 1000.0 w przypadku tablicy składającej się z 1000 elementów, co przyspieszy obliczenia kosztem niewidocznego dla oka zmniejszenia dokładności).

Gdzieś czytałem, że powszechnie przyjmuje się, że w monitorach komputerowych jest korekcja gamma 2.2. Czy to prawda, że właśnie tak się robi i przy wyświetlaniu spektrogramów dokonuje się korekcji gamma 2.2?

Czy powyższa zasada dotyczy także telewizorów, smartfonów i tabletów? Innymi słowy, jeżeli bym chciał zrobić program generujący spektrogram na te urządzenia, to taką samą korekcję muszę zrobić?