RGB matrica: gama korekcija

Seniau minėjau, kad RGB matrica neteisingai perduoda pustonius. Kiek pasiknaisiojes internete radau terminą “gamma correction” kuri naudojama manau visuose displėjuose. Vikipedija davė didelį straipsnį ir net baisuoklišką formulę kaip skaičiuojama gama (γ):
formule

Tačiau man reikėjo paskaičiuoti ne pačią gamą, bet korekcinę lentelę. Po trumpos paieškos radau šį algoritmą:
brightness = (255# * ((x / 255#) ^ (1# / gama))) + 0.5

Parašiau trumpą programėlę ROM reikšmių lentelės generavimui, o lentelė vėliau įrašoma į FPGA. Va jums ekrano fotkė. (kažkaip patiko fotkinti ekraną o ne spausti print screen 🙂 )

gamma software

Toliau bus keletas matricos nuotraukų su įvairiom gamma reikšmėm. Man labiausiai patiko reikšmės tarp γ=2 ir γ=3. Primenu, kad tiesinė priklausomybė (γ=1) jau išbandyta ankščiau ir rezultatas buvo blogas.
Spauskit ant nuorodos:

Gamos (γ) variacijos:

gamma γ=0.5
γ=0.5

gamma γ=1.0
γ=1.0

gamma γ=2.0
γ=2.0

gamma γ=2.5
γ=2.5

gamma γ=4.0
γ=4.0

gamma γ=5.0
γ=5.0

6 replies on “RGB matrica: gama korekcija”

  1. Yep, dinaminis diapazonas prastokas.
    Galvočiau apie 2.2 reikšmę ir gal netiesiškai kvantuoti iki 6 bitų prieš Gamma korekciją – turėsi daugiau erdvės tamsiems pustoniams.

  2. Dinaminis diapazonas kiek pamažintas ir dėl mano kaltės. Dabar naudoju 64 lygius kiekvienai spalvai, nes jei bandyti daugiau, tai pradeda matytis mirgėjimas.
    Gal realybėje kiek geresnis vaizdelis, nes fotoaparatas kiek supanikuoja kai fotkina tiek daug šviečiančių diodų.

Leave a Reply

Your email address will not be published. Required fields are marked *