algorytm.org

Algorytm Atkinson'a

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?

Algorytm Atkinson'a
Ocena użytkowników:***** / 1
SłabyŚwietny 
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:
 *7/16
3/165/161/16
to dla metody Atkinson'a tablica rozpraszania błędu wygląda tak:
 *1/81/8
1/81/81/8 
 1/8  
* 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:

Obraz oryginalnyPrzekształcanie zwykłe - progoweAlgorytm Atkinson'a
Obraz oryginalnyPrzekształcanie zwykłe - progoweAtkinson


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

Plik:

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 1
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.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: 30 lipca 2012 19:35
Dodaj komentarz