StartAlgorytmyPrzetwarzanie obrazówSkala szarości
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?
 
Skala szarości
Ocena użytkowników:+++++ / 5
SłabyŚwietny 
Wpisany przez Dariusz Rorat
poniedziałek, 09 sierpnia 2010 08:42
Obraz w odcieniach szarości jest obrazem w którym udział każdej składowej R, G, B jest taki sam. Składowe R, G, B są zatem w stosunku 1:1:1. Wykonanie obrazu w odcieniach szarości sprowadza się do takiego przekształcenia obrazu aby uzyskać dla każdego piksela obrazu odpowiednio do stopnia jasności piksela taki sam udział każdej z tych składowych.

W tym celu najpierw odczytuje się piksel obrazu o określonym kolorze z odpowiednim udziałem każdej ze składowych podstawowych i wyodrębnia składowe R, G, B. Następnie dokonuje się sumowania jasności każdej z barw podstawowych i tą sumę dzieli bez reszty przez 3. Po tej operacji należy dokonać syntezy koloru z tych trzech składowych. Zatem operacja ta może zostać opisana następującym wzorem:
Rszarosc = (Rkolorowy + Gkolorowy + Bkolorowy) / 3
Gszarosc = (Rkolorowy + Gkolorowy + Bkolorowy) / 3
Bszarosc = (Rkolorowy + Gkolorowy + Bkolorowy) / 3


Operacje wykonujemy w pętli dla każdego piksela obrazu.

Zdjęcia poniżej przedstawiają obraz kolorowy dla którego mamy wykonać przekształcenia i obraz monochromatyczny po przekształceniach. Głębia koloru dla obrazu 24 bitowego to 16,7 miliona kolorów. Obraz monochromatyczny będzie miał tylko 256 odcieni szarości.

Skala szarości



Innym sposobem na przetworzenie obrazu kolorowego na obraz w odcieniach szarości, jest użycie wzoru wykorzystywanego w modelu YUV. Ma on tą zaletę, że bierze pod uwagę, że ludzkie oko jest bardziej wyczulone na kolor zielony, a najmniej na kolor niebieski. Operacja przetworzenia może w tym wypadku zostać opisana następującym wzorem:
Rszarosc = 0.299*Rkolorowy + 0.587*Gkolorowy + 0.114*Bkolorowy
Gszarosc = 0.299*Rkolorowy + 0.587*Gkolorowy + 0.114*Bkolorowy
Bszarosc = 0.299*Rkolorowy + 0.587*Gkolorowy + 0.114*Bkolorowy


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








Autor Język programowania Komentarz Otwórz Pobierz Ocena
Adrian Wijas C/C++ konwersja bmp do skali szarości w czystym C, tylko jedna biblioteka: stdio, najprościej jak się dało
Implementacja w C/C++
Implementacja w C/C++
----- / 0
Dariusz Rorat Delphi/Pascal Komponent do obsługi efektów graficznych z przykładowym programem. Efekty: negatyw, solaryzacja, fałszywe kolory, odcienie szarości i sepia
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:13

Dodaj komentarz

Kod antysapmowy
Odśwież