Warsztat » Forum

[Programowanie grafiki] Jak uzyskać wartość hue z RGB ?

Feb 18, 2010 | 0pako0 |
14 wypowiedzi na 1 stronach:
1
0pako0
Feb 18, 2010

Jak uzyskać wartość hue z RGB ?

Jak w temacie. Mam kolor RGB i chce się dowiedzieć ile wynosi hue czyli barwa.
Krzysiek K.
Feb 18, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Musisz sprawdzić, który z komponentów RGB ma największą wartość, który najmniejszą, a który pośrodku i w ten sposób określić przybliżoną wartość. Dokładną wartość dalej uzyskasz biorąc 0pod uwagę dokładne położenie środkowej wartości pomiędzy maksymalną a minimalną. :)
Riddlemaster
Feb 18, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Hue = 60 * (green - blue) / (max - min);,

Gdzie:
max = max(red, max(green, blue));
min = min(red, min(green, blue));
Krzysiek K.
Feb 18, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Riddlemaster: w ogólności to zadziała jedynie dla 1/3 przypadków. :)
Riddlemaster
Feb 19, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Cytat:
w ogólności to zadziała jedynie dla 1/3 przypadków.

Czepiasz się ;) Ale oczywiście masz rację. Zapomniałem napisać, że tak jest w przypadku, gdy max = red ;) W pozostałych przypadkach jest podobnie - z drobnymi różnicami oczywiście.
dx0ne
Feb 19, 2010

Odp: Jak uzyskać wartość hue z RGB ?

może to pomoże Computing hue from RGB

a tu zdaje się być kawałek kodu How To Converting Colors Between RGB and HLS (HBS)
0pako0
Feb 19, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Heh coś dziwnego zauważylem, mianowicie u mnie w programie MS Paint kolor biały RGB(255,255,255) to HSL(239,240,240)  ??? a w Paint Shop Pro HSL(255,0,255). U was w paint też tak jest ?
Riddlemaster
Feb 24, 2010

Odp: Jak uzyskać wartość hue z RGB ?

A w Photoshopie pewnie jeszcze inny ;) ? Nie wiem z czego takie różnice wynikają - tzn. nie zagłębiałem się w to szczególnie - ale sam też się kiedyś z nimi spotkałem.
Regedit
Feb 23, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Najfajniej rozpisany wzór na HSB_to_RGB jaki spotkałem jest tu: http://en.wikipedia.org/wiki/HSV_color_space#From_RGB_to_HSV

Mój kawałek kodu: http://regedit.gamedev.pl/Download/Produkcje/Biblioteki/TFQ_CommonLib_6_1/src/Math.cpp, funkcja RgbToHsb.
0pako0
Feb 25, 2010

Odp: Jak uzyskać wartość hue z RGB ?

W Photoshopie serio jest jeszcze inny  :) ale właśnie taki jak wychodzi ze wzorów które podaliście ponieważ wynik jest w stopniach czyli 0-360.
Krzysiek K.
Feb 26, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Cytat:
Heh coś dziwnego zauważylem, mianowicie u mnie w programie MS Paint kolor biały RGB(255,255,255) to HSL(239,240,240)

Bo Paint jest dziwny i używa zakresu 0-240. :)

Cytat:
W Photoshopie serio jest jeszcze inny  :)

Może używają innej skali dla barwy. Przykładowo, mogą zamiast kąta 0-360 używać zakresu 0-100, 0-255, czy 0.00-1.00. Inna kwestia to różnica między modelami HSV, a HSL. :)
Regedit
Mar 1, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Krzysiek K.: Możesz rozwinąć ten temat? Ja zawsze myślałem że to to samo. Przynajmniej HSB i HSV.
Krzysiek K.
Mar 1, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Cytat:
Krzysiek K.: Możesz rozwinąć ten temat? Ja zawsze myślałem że to to samo. Przynajmniej HSB i HSV.

Bo HSB i HSV to jest to samo, ale HSL juz nie. Pogooglaj na wiki, tam jest wyczerpujący opis. :)
dx0ne
Feb 26, 2010

Odp: Jak uzyskać wartość hue z RGB ?

Cytat:
HSL is similar to HSB. The main difference is that HSL is symmetrical to lightness and darkness. This means that:

    * In HSL, the Saturation component always goes from fully saturated color to the equivalent gray (in HSB, with B at maximum, it goes from saturated color to white).
    * In HSL, the Lightness always spans the entire range from black through the chosen hue to white (in HSB, the B component only goes half that way, from black to the chosen hue).

For my part, HSL offers a more accurate (even if it's not absolute) color approximation than HSB.
- source


HSB i HSV to jest to samo tylko raz ostatni komponent nazywany jest Brightness a raz Value
Strony:
1