Мне нужно конвертировать RGB в HSV, я уже получаю правильные ответы для S и V, но H слишком высоки.
class RGB(colour):
def toHSV(self):
var_R = self.values[0]
var_G = self.values[1]
var_B = self.values[2]
cmax = max([var_R, var_G, var_B])
cmin = min([var_R, var_G, var_B])
dif = cmax - cmin
V = cmax
if dif == 0:
H = 0
elif cmax == var_R:
H = 60*(((var_G-var_B)/dif)%6)
elif cmax == var_G:
H = 60*(((var_B-var_R)/dif)+2)
elif cmax == var_B:
H = 60*(((var_R-var_G)/dif)+4)
if cmax < 0:
S = 0
H = 0
elif cmax != 0:
S = (dif/cmax)
if H < 0:
H += 360
return RGB([H, S, V])
col = RGB ([0,9, 0,8, 0,6]) печать (col.toHSV (), цветная ([0,16666666666666666, 0,25000000000000006, 0,8]))
Мне нужно получитьответы 0,17, 0,25 и 0,8 для RGB R = 0,9, G = 0,8 и B = 0,6
Но для HI получают 0,4