Wpisany przez Tomasz Lubiński,
30 lipca 2009 18:24
Algorytm Atkinson'a 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łedu (ang. dithering, error diffusion), który powstaje na skutek zmniejszania liczby kolorów. W przeciwieństwie jednak do innych podobnych metod, nie cały bład przekazywany jest do komórek sąsiednich a jedynie jego 75%. Algorytm 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 Atkinson'a tablica rozpraszania błędu wygląda tak:
* oznacza aktualnie rozważaną próbkę.
Jeżeli zsumować wszystkie wagi błedów otrzymamy 6/8 i to jest właśnie wspomniane 75% błędu, które przekazywane jest dalej, pozostała część jest tracona co jest działaniem zamierzonym i ma na celu zachowanie małych szczegółów obrazu. Wynik działania metody:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Algorytm Atkinson'a" 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 |
* | 1/8 | 1/8 | |
1/8 | 1/8 | 1/8 | |
1/8 |
Jeżeli zsumować wszystkie wagi błedów otrzymamy 6/8 i to jest właśnie wspomniane 75% błędu, które przekazywane jest dalej, pozostała część jest tracona co jest działaniem zamierzonym i ma na celu zachowanie małych szczegółów obrazu. Wynik działania metody:
Obraz oryginalny | Przekształcanie zwykłe - progowe | Algorytm Atkinson'a |
Przykład w JavaScript:
Ustaw ścieżkę do pliku (lub pozostaw tą domyślną), wczytaj plik a następnie użyj przycisku "Algorytm Atkinson'a" 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:35