algorytm.org

Aproksymacja półtonowa, sygnał szumu

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?

Aproksymacja półtonowa, sygnał szumu
Ocena użytkowników:***** / 8
SłabyŚwietny 
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.

  • 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 oryginalnyPrzekształcanie zwykłe - progoweModulowanie progu sygnałem szumu
Obraz oryginalnyPrzekształcanie zwykłe - progoweSygnał 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
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 1
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 1
 
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:16
Dodaj komentarz