algorytm.org

Histogram - rozciąganie



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?

Histogram - rozciąganie
Ocena użytkowników:***** / 33
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 13 września 2005 23:26

Rozciagniecie histogramu (ang. histogram stretching) wykonuje sie wówczas, gdy nie pokrywa on całego zakresu wartosci składowych obrazu. Czasem operacja ta mylona jest z wyrównywaniem histogramu. Rozciagniecie prowadzi do takiej konwersji zakresu wartosci składowych, aby histogram obejmował wszystkie wartosci składowych. Czyli jeżeli zakres składowej jest równy 0-255, a najmniejsza wartość w obrazie wynosi 4, największa natomiast wynosi na przykład 198, to po operacji rozciągnięcia wartości tej składowej będą w pełnym zakresie 0-255. Czyli teraz najmniejsza wartość w obrazie wynosi 0 a największa 255. Operacje rozciagniecia histogramu mozna przeprowadzic odpowiednio dobierajac jasnosc i kontrast obrazu. W praktyce rozciągnięcie histogramu sprowadza się do wykonania przeksztalcenia obrazu przy pomocy odpowiednio przygotowanej tablicy LUT. Współczynniki w takiej tablicy wyznaczane są wg nastepujacego wzoru:
LUT(i) = \frac{i_{max}}{v_{max}-v_{min}}*(i-v_{min})
gdzie:
  • vmax oznacza maksymalną wartość składowej w obrazie,
  • vmin oznacza minimalną wartość składowej w obrazie,
  • imax oznacza maksymalną możliwą wartość składowej w obrazie.

Należy pokreślić, iż operacja ta nie jest uniwersalna i w przypadku niektórych obrazów może nie przynieść zadowalajacych rezultatów. Poniżej przedstawiono wynik rozciągania histogramu, dla obrazu kolorowego i monochromatycznego (po lewej obrazy przed operacją rozciągania histogramu):

Rozciaganie histogramu

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#Microsoft Visual Studio 2010
.cs
.cs
***** / 1
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 5
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: 16 sierpnia 2012 19:37
Komentarze
photo
+5 # Barman 2014-06-03 09:54
Yay, pomogło. Tylko pytanie, czemu w wykładach etc. nie piszą tego w tak prosty sposób?
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz