StartAlgorytmyPrzetwarzanie obrazówSolaryzacja
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?
 
Solaryzacja
Ocena użytkowników:+++-- / 1
SłabyŚwietny 
Wpisany przez Dariusz Rorat
poniedziałek, 02 sierpnia 2010 09:29
Solaryzacja jest to zjawisko częściowego lub całkowitego odwrócenia obrazu negatywowego w pozytywowy. Uzyskanie efektu solaryzacji wymaga zastosowania odpowiednio przygotowanej tablicy LUT. Wartość progu jasności ip powyżej, którego następuje odwrócenie obrazu można ustalać od 0 do imax . Wartości tablicy LUT są następujące:
LUT(i) = i, W zakresie i od 0 do ip,
LUT(i) = imax - i, dla i większych od ip,
gdzie imax oznacza maksymalną dopuszczalną wartość składowej piksela obrazu (typowo 255).


Dla wartości i od 0 do ustalonego progowego poziomu jasności obraz nie ulega zmianom, natomiast powyżej tego progu następuje odwrócenie obrazu. Wykres funkcji solaryzacji jest przedstawiony na poniższych wykresach.

solaryzacja - tablica LUT

 

Linia niebieska to funkcja przetwarzania obrazu bez zmian. Linia zielona to funkcja negatywu. Pogrubiona czarna linia to funkcja solaryzacji. Jak widać obraz może ulegać odwróceniu przy różnych poziomach jasności progowej. W przypadku gdy próg jasności jest ustawiony na 0 otrzymujemy negatyw, a w przypadku ustawienia na imax otrzymujemy obraz oryginalny. Jasność sprawdza się dla każdej ze składowych R, G, B. W tym celu należy najpierw wyodrębnić z odczytanego piksela te barwy. Następnie dokonujemy transformacji według tablicy LUT, dla każdej składowej osobno. Po tej operacji dokonujemy syntezy koloru z trzech barw podstawowych. Operacje wykonujemy w pętli dla każdego piksela.

 

solaryzacja
Zdjęcia powyżej przedstawiają odpowiednio: z lewej kolejno od góry: obraz oryginalny, negatyw obrazu oryginalnego, obraz w skali szarości oraz odpowiednio z prawej efekt solaryzacji tych obrazów z ustawionym progiem jasności imax/2. Przy tak ustalonym progu efekt będzie taki jak w programie Photoshop. Jak widać solaryzacja pozytywu i negatywu daje ten sam efekt.

Przykład w JavaScript:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Solaryzacja" 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

Plik:
Luminancja (od 0 do 255):



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Dariusz Rorat C/C++ Borland Builder 6
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
Dariusz Rorat Delphi/Pascal Borland Delphi 7
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: środa, 11 stycznia 2012 20:54

Dodaj komentarz

Kod antysapmowy
Odśwież