Efektywny histogram

0

Witam.
Piszę właśnie projekt w javie, którego tematem jest redukcja kolorów bitmapy. Do algorytmu redukcji potrzebny jest mi histogram kolorów tej bitmapy (kolory wraz z ilością ich wystąpień). Próbowałem już z tablicami oraz kontenerami, ale nie były to zbyt efektywne rozwiązania...program przy dużej rozdzielczości oraz sporej ilości kolorów (na przykład zdjęcie zapisane do 24 bitowej bitamapy w rozdzielczości 640x480) się zwieszał. Proszę was o radę. W jaki najbardziej efektywny sposób stworzyć w javie taki histogram, które klasy byłyby najlepsze itp. Z góry dzięki za odpowiedź.

0

Może trochę nie na temat, ale w okolicach ;-)

Można redukować liczbę kolorów bez użycia histogramu. Jest wiele metod. Jedna polega na przykład na tworzeniu drzewa w ten sposób, żeby podobne kolory (niewiele odległe wg przyjętej miary) były w jednym poddrzewie. Pozwala to później scalić niektóre poddrzewa (od liści w górę) otrzymując mniej kolorów.

Druga metoda polega na tym, żeby tworzyć sześcian kolorów (na każdej krawędzi jedna składowa). Następnie sortujesz po którejś ze składowych (krawędzi) i dzielisz sześcian na mniejsze prostopadłościany tam gdzie jest mediana. W ten sposób podzielisz go na odpowiednio małe części, w obrębie których można scalać kolory. Warto czasami dodać do tego sześcianu jakieś śmieci (przypadkowe kolory).

Może jest to zbyt ogólne i chaotyczne, ale chce mi się już spać ;-P Generalnie na google jest dużo informacji pod hasłem "kwantyzacja kolorów"

1 użytkowników online, w tym zalogowanych: 0, gości: 1