Wpisany przez Tomasz Lubiński,
26 sierpnia 2008 21:53
Wykonanie negatywu 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:
Wykres prostej ukazującej to przekształcenie przedstawia rysunek poniżej.

Jak widać wykonanie negatywu obrazu sprowadza się do odjęcia od maksymalnej dopuszczalnej wartości wartości składowej RGB obrazu. Czyli można powiedzieć, że negatyw jest dopełnieniem obrazu. Jak łatwo zauważyć negatyw negatywu będzie na powrót pozytywem czyli oryginalnym obrazem.
Dowód:
Wprowadzimy następujące oznaczenia:
i0 - punkt obrazu przed pierwszym przekształceniem (pozytyw)
i1 - punkt obrazu po pierwszym przekształceniem (negatyw)
i2 - punkt obrazu po drugim przekształceniem (negatyw negatywu)
Po pierwszym przekształceniu: i1 = imax - i0
Po drugim przekształceniu: i2 = imax - i1
Czyli: i2 = imax - i1 = imax - (imax - i0) = imax - imax + i0 = i0
Zatem i2 = i0, czyli negatyw negatywu jest pozytywem co oczywiście wykorzystuje się w tradycyjnej fotografii analogowej.
Poniżej zestawiono obrazy oraz ich negatywy.
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 "negatyw" do uzyskania jego negatywu
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_{max} - i
gdzie imax oznacza maksymalną dopuszczalną wartosc składowej RGB piksela obrazu.Wykres prostej ukazującej to przekształcenie przedstawia rysunek poniżej.

Jak widać wykonanie negatywu obrazu sprowadza się do odjęcia od maksymalnej dopuszczalnej wartości wartości składowej RGB obrazu. Czyli można powiedzieć, że negatyw jest dopełnieniem obrazu. Jak łatwo zauważyć negatyw negatywu będzie na powrót pozytywem czyli oryginalnym obrazem.
Dowód:
Wprowadzimy następujące oznaczenia:
i0 - punkt obrazu przed pierwszym przekształceniem (pozytyw)
i1 - punkt obrazu po pierwszym przekształceniem (negatyw)
i2 - punkt obrazu po drugim przekształceniem (negatyw negatywu)
Po pierwszym przekształceniu: i1 = imax - i0
Po drugim przekształceniu: i2 = imax - i1
Czyli: i2 = imax - i1 = imax - (imax - i0) = imax - imax + i0 = i0
Zatem i2 = i0, czyli negatyw negatywu jest pozytywem co oczywiście wykorzystuje się w tradycyjnej fotografii analogowej.
Poniżej zestawiono obrazy oraz ich negatywy.
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 "negatyw" do uzyskania jego negatywu
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# | Microsoft Visual C# 2010 | .cs | .cs | ***** / 0 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 3 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 2 |
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:19