Wpisany przez Tomasz Lubiński,
08 września 2005 23:05
Zmiana jasności obrazu sprowadza sie do wykonania przekształcenia obrazu przy pomocy odpowiednio przygotowanej tablicy LUT.
Współczynniki w takiej tablicy wyznaczane są wg następującego wzoru:
Jeżeli wartość stałej b, jest większa od 0, to nastąpi zwiększenie jasności obrazu. W przeciwnym wypadku, gdy wartość b jest mniejsza od 0, nastąpi zmniejszenie jasności obrazu. Wykresy powyższych krzywych przedstawia rysunek.

Jak widać zmiana jasności sprowadza się do dodania do wartości wszystkich składowych RGB obrazu pewnej stałej b, gdy wynik jest większy od zakresu to należy wziąć wartość maksymalną, jeżeli natomiast jest mniejszy od zakresu to należy wziąć wartość minimalną. Zwiększanie jasności obrazu powoduje przesunięcie histogramu obrazu w prawo, natomiast zmniejszenie jasności przesunięcie w lewo.
Poniżej zestawiono, wyniki zmiany jasności przykładowego obrazu. W środku znajduje się obraz oryginalny, po lewej mamy obraz o zmniejszonej jasności, po prawej obraz o zwiększonej jasności.
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 jasności" 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)=\begin{cases}
0 & \text{ jeżeli } i+b < 0 \\
i+b & \text{ jeżeli } 0 \leq i+b \leq i_{max} \\
i_{max} & \text{ jeżeli } i+b > i_{max}
\end{cases}
gdzie imax oznacza maksymalną dopuszczalną wartość składowej piksela obrazu.Jeżeli wartość stałej b, jest większa od 0, to nastąpi zwiększenie jasności obrazu. W przeciwnym wypadku, gdy wartość b jest mniejsza od 0, nastąpi zmniejszenie jasności obrazu. Wykresy powyższych krzywych przedstawia rysunek.

Jak widać zmiana jasności sprowadza się do dodania do wartości wszystkich składowych RGB obrazu pewnej stałej b, gdy wynik jest większy od zakresu to należy wziąć wartość maksymalną, jeżeli natomiast jest mniejszy od zakresu to należy wziąć wartość minimalną. Zwiększanie jasności obrazu powoduje przesunięcie histogramu obrazu w prawo, natomiast zmniejszenie jasności przesunięcie w lewo.
Poniżej zestawiono, wyniki zmiany jasności przykładowego obrazu. W środku znajduje się obraz oryginalny, po lewej mamy obraz o zmniejszonej jasności, po prawej obraz o zwiększonej jasności.
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 jasności" 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 | ***** / 1 |
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: 16 sierpnia 2012 19:52