Wpisany przez Tomasz Lubiński,
12 września 2005 22:25
Do usunięcia zniekształceń wprowadzonych przez urządzenia (np. monitor, bimer, skaner) potrzebna jest konwersja o charakterze nieliniowym. Przekształceniem takim jest tak zwana korekcja gamma. Sprowadza się ona do wykonania przekształcenia obrazu przy pomocy odpowiednio przygotowanej tablicy LUT. Współczynniki w takiej tablicy wyznaczane są wg następującego wzoru:
Poniżej zestawiono, wyniki korekcji gamma przykładowego obrazu. W środku znajduje się obraz oryginalny, po lewej mamy obraz dla γ<1, po prawej obraz dla γ>1.
Wyniki dla obrazu monochromatycznego:
Wyniki dla obrazu kolorowego:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Korekcja gamma" w celu sprawdzenia działania metody.
Ze względu na zabezpieczenia w przeglądarkach, skrypt otwiera wyłącznie pliki graficzne w obrębie naszego serwisu, np:
http://www.algorytm.org/images/stories/po/anaglif_lewy.jpg
http://www.algorytm.org/images/stories/po/orig.gif
http://www.algorytm.org/images/stories/mb/hsv.jpg
LUT(i) = i^{1 / \gamma}
gdzie γ jest stałą, której wartość zależy od charakterystyki urządzenia. Należy tutaj zauważyć, że wzór ten jest prawdziwy dla 0 ≤ i ≤ 1, by wykorzystać ten wzór dla np.: 0 ≤ i ≤ 255 należy go odpowiednio przekształcić do postaci:
LUT(i) = 255 * \left(\frac{i}{255}\right)^{\frac{1}{\gamma}}
Wykresy krzywych w zależności od wartości współczynnika, przedstawiono poniżej:Poniżej zestawiono, wyniki korekcji gamma przykładowego obrazu. W środku znajduje się obraz oryginalny, po lewej mamy obraz dla γ<1, po prawej obraz dla γ>1.
Wyniki dla obrazu monochromatycznego:
Wyniki dla obrazu kolorowego:
Przykład w JavaScript:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Korekcja gamma" w celu sprawdzenia działania metody.
Ze względu na zabezpieczenia w przeglądarkach, skrypt otwiera wyłącznie pliki graficzne w obrębie naszego serwisu, np:
http://www.algorytm.org/images/stories/po/anaglif_lewy.jpg
http://www.algorytm.org/images/stories/po/orig.gif
http://www.algorytm.org/images/stories/mb/hsv.jpg
| |||||
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | Visual Studio C# 2010 Express | .cs | .cs | ***** / 1 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 4 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 1 |
Tomasz Lubiński | JavaScript | Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+ | .js | .js | ***** / 0 |
Poprawiony: 17 sierpnia 2012 19:02