algorytm.org

Sepia

Pomoc
Potrzebujesz algorytmu/kodu źródłowego, którego nie znalazłeś(aś) w serwisie?
Zamów algorytm!
Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sepia
Ocena użytkowników:***** / 6
SłabyŚwietny 
Wpisany przez Dariusz Rorat, 09 sierpnia 2010 20:40

Sepia jest jedną z technik tonowania odbitek fotograficznych. Jest to obraz o charakterystycznym brązowym zabarwieniu. Aby wykonać obraz w sepii należy najpierw obraz kolorowy przekształcić w obraz o odcieniach szarości. Następnie dokonuje się koloryzacji tego obrazu określoną barwą. W tym celu odczytuje się barwę piksela dla obrazu w odcieniach szarości. Później dokonuje się wyodrębnienia każdej składowej R, G, B. Po tej operacji dodaje się do składowej zielonej zadany współczynnik wypełnienia W a do czerwonej dwukrotność tego współczynnika. Składowa niebieska pozostaje bez zmian.
R = R + 2*W\\ G = G + W\\ B = B
gdzie W to zadany współczynnik wypełnienia barwą (od 20 do 40).

Po tej operacji dokonuje się syntezy koloru z trzech składowych. Operacje wykonuje się w pętli dla każdego piksela obrazu.

Sepia


Zdjęcie z lewej to obraz oryginalny, po środku obraz w odcieniach szarości i z prawej obraz w sepii.

Przykład w JavaScript:

Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Sepia" by sprawdzić działanie 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:
Sepia (od 20 do 40):

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#Visual Studio C# 2010 Express
.cs
.cs
***** / 0
Dariusz RoratC/C++Borland Builder 6
.cpp
.cpp
***** / 4
Dariusz RoratDelphi/PascalBorland Delphi 7
.pas
.pas
***** / 1
Tomasz LubińskiJavaScriptFirefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+
.js
.js
***** / 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: 17 sierpnia 2012 19:26
Komentarze
photo
0 # ryjek 2013-04-26 11:47
Heh, korzystają z zaprezentowaneg o sposobu pojawiają mi się artefakty w postaci jasnoniebieskic h plam (tam, gdzie jest biały).
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Tomasz Lubiński 2015-09-07 07:56
Zapewne nie zabezpieczyłeś się przed przekroczeniem zakresu przez wartości R i G. One w trakcie działania algorytmu są zwiększane i trzeba uważać by nie przekroczyć ich wartości maksymalnej (w przypadku gdyby wyliczona nowa wartość przekraczała maksymalną dopuszczalną wartość, należy użyć po prostu tej wartości maksymalnej)
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # kaś 2013-09-15 17:11
Witam, jak zrobić by te implementacje działały?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # a 2015-09-06 23:27
Podszkolić się ;]
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz