Как конвертировать RGB в HSV? - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно конвертировать 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

...