Wpisany przez Tomasz Lubiński,
04 sierpnia 2009 22:23
Algorytm ten wykorzystywany jest w tak zwanej aproksymacji półtonowej, czyli wówczas gdy obraz o większej liczbie odcieni szarości (ewentualnie barw) musimy przekształcić w obraz czarno - biały.
Metoda ta jest wykorzystywana również do redukcji liczby odcieni szarości lub kolorów. Jest to algorytm działający w oparciu o zasadę rozpraszania błędu (ang. dithering, error diffusion), który powstaje na skutek zmniejszania liczby kolorów. Metoda ta różni się od pozostałych algorytmów dithering'u tym, że błąd nie jest przekazywany do komórek będących poniżej, po prawej stronie od aktualnie przetwarzanego piksla. Ma to na celu powstrzymanie nadmiernego przekazywania błędu w prawym kierunku (piksle przetwarzane są kolejnymi wierszami od lewej do prawej). Jest to wersja algorytmu rozpraszająca błąd na 5 sąsiednich komórek. Istnieje też wersja mniejsza rozpraszająca błąd na 4 komórki. Algorytm ten działa identycznie jak algorytm Floyd'a-Steinberg'a
lecz o ile w przypadku Floyd'a-Steinberg'a tablica rozpraszania błędów wyglądała następująco:
to dla metody Shiau-Fan'a (5-komórkowa) tablica rozpraszania błędu wygląda tak:
* oznacza aktualnie rozważaną próbkę..
Wynik działania algorytmu:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Algorytm Shiau-Fan'a (5-komórkowy)" 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
* | 7/16 | |
3/16 | 5/16 | 1/16 |
* | 8/16 | |||
1/16 | 1/16 | 2/16 | 4/16 |
Wynik działania algorytmu:
Obraz oryginalny | Przekształcanie zwykłe - progowe | Algorytm Shiau-Fan'a (5-komórkowy) |
Przykład w JavaScript:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Algorytm Shiau-Fan'a (5-komórkowy)" 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
|
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | Microsoft Visual Studio 2010 | .cs | .cs | ***** / 0 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 1 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 1 |
Tomasz Lubiński | JavaScript | Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+ | .js | .js | ***** / 0 |
Poprawiony: 30 lipca 2012 19:37