StartAlgorytmyModele barwTransformacja HSV RGB
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Transformacja HSV RGB
Ocena użytkowników:+++-- / 12
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
wtorek, 06 września 2005 22:09
Przeważnie pisząc aplikację nie możemy korzystać bezpośrednio z modelu HSV, należy go zatem przetransformować do używanego powszechnie modelu RGB. Zakładamy przy tym, że parametry wejściowe mają wartości: H od 0.0 do 359.9, a S oraz V pomiędzy 0.0 a 1.0. Natomiast wartości składowych wynikowego modelu RGB mieszczą się w przedziałach od 0.0 do 1.0.

HSV do RGB
dane wejsciowe: hue, sat, val
dane wyjsciowe: red, grn, blu
if(val==0) {red=0; grn=0; blu=0;}
else{
 hue/=60;
 i = Math.floor(hue);
 f = hue-i;
 p = val*(1-sat);
 q = val*(1-(sat*f));
 t = val*(1-(sat*(1-f)));
 if (i==0) {red=val; grn=t; blu=p;}
 else if (i==1) {red=q; grn=val; blu=p;}
 else if (i==2) {red=p; grn=val; blu=t;}
 else if (i==3) {red=p; grn=q; blu=val;}
 else if (i==4) {red=t; grn=p; blu=val;}
 else if (i==5) {red=val; grn=p; blu=q;}
}

RGB do HSV
x = MIN(MIN(red, grn), blu);
val = MAX(MAX(red, grn), blu);
if (x == val) {hue=0; sat=0;}
else {
if red == x
 f = grn-blu
else
 if grn == x
   f = blu-red
 else
   f = red-grn;
if red == x
 i = 3
else
 if grn == x
   i = 5
 else
   i = 1;
 hue = ((i-f/(val-x))*60)%360;
 sat = ((val-x)/val);
}



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C/C++
Implementacja w C/C++
Implementacja w C/C++
+++-- / 2
Tomasz Lubiński Delphi/Pascal
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
+++-- / 2
Tomasz Lubiński Java
Implementacja w Java
Implementacja w Java
+++-- / 2
 
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: czwartek, 27 maja 2010 19:08

Komentarze

 
photo
0 # Krystiann 2011-10-30 19:57
Czy moze ktos napisac dlaczego zmienne f oraz i przyjmują takie właśnie wartości i dlaczego tak a nie inaczej potem wychodzą nam h i s
Odpowiedz | Odpowiedz z cytatem | Cytować
 

Dodaj komentarz

Kod antysapmowy
Odśwież