Wpisany przez Tomasz Lubiński,
07 września 2005 20:53
Aproksymacja półtonowa, polega na przekształceniu obrazu o większej liczbie odcieni szarości (ewentualnie barw) w obraz czarno - biały. Intuicyjnie robi się to tak, że punkty o jasności powyżej pewnego założonego progu (np.: połowa wartości maksymalnej) w obrazie wejściowym przekształca się na punkty białe w obrazie wyjściowym. Analogicznie punkty o jasności poniżej progu w obrazie wejściowym przekształca się w punkty czarne w obrazie wyjściowym. W miejscu płynnych przejść w obrazie wynikowym powstaje jednak ostra granica. By temu zaradzić moduluje się próg sygnałem szumu, tak by pewne punkty o podobnej wartości były powyżej ustalonego progu a inne nie. W ten sposób uzyskujemy wiele punktów białych i czarnych obok siebie, daje to efekt delikatnego przejścia. Możemy tutaj zastosować różne podejścia.
Wynik działania algorytmu:
Dzięki tym sposobom możemy uzyskać pewną poprawę. Lepsze efekty dają jednak metody propagacji błędu, takie jak algorytm Floyda-Steinberga. Są one jednak nieco bardziej skomplikowane.
- wykorzystać funkcję sinus czyli do ustalonego progu dodawać wartość A·sinαx·sinβy, gdzie x oraz y to współrzędne kolejnych rozpatrywanych punktów obrazu, A, α oraz β to pewne odpowiednio dobrane stałe
- wykorzystać funkcję random (generator liczb losowych), czyli do ustalonego progu dodawać liczbę losową z zakresu np -10% progu .. 10% progu
Wynik działania algorytmu:
Obraz oryginalny | Przekształcanie zwykłe - progowe | Modulowanie progu sygnałem szumu |
Dzięki tym sposobom możemy uzyskać pewną poprawę. Lepsze efekty dają jednak metody propagacji błędu, takie jak algorytm Floyda-Steinberga. Są one jednak nieco bardziej skomplikowane.
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 1 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 1 |
Poprawiony: 30 lipca 2012 19:16