StartAlgorytmyPrzetwarzanie obrazówNegatyw obrazu
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Negatyw obrazu
Ocena użytkowników:----- / 0
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
wtorek, 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:
LUT(i) = imax - i


gdzie imax oznacza maksymalną dopuszczalną wartosc składowej RGB piksela obrazu.
Wykres prostej ukazującej to przekształcenie przedstawia rysunek poniżej.
wykres LUT

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:
Negatyw - obraz monochromatyczny


Wyniki dla obrazu kolorowego:
Negatyw - obraz kolorowy

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








Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C/C++ Borland Builder 6
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
Tomasz Lubiński Delphi/Pascal Borland Delphi 5
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++++- / 1
Tomasz Lubiński Java Script Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+
Implementacja w Java Script
Implementacja w Java Script
----- / 0
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: czwartek, 12 stycznia 2012 11:09

Dodaj komentarz

Kod antysapmowy
Odśwież