MCPcopy Create free account
hub / github.com/KAlO2/PerfectShow / hsv2rgb

Function hsv2rgb

jni/venus/color_space.cpp:67–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65}
66
67cv::Vec3f hsv2rgb(const cv::Vec3f& hsv)
68{
69 const float& h = hsv[0], &s = hsv[1], &v = hsv[2];
70 cv::Vec3f color;
71 if(s == 0.0)
72 color[2] = color[1] = color[0] = v;
73 else
74 {
75 float hue = h;
76 if(hue == 1.0f)
77 hue = 0.0;
78 hue *= 6.0f;
79
80 int i = static_cast<int>(hue);
81 float f = hue - i;
82 float w = v * (1.0f - s);
83 float q = v * (1.0f - (s * f));
84 float t = v * (1.0f - (s * (1.0f - f)));
85
86 switch(i)
87 {
88 case 0:
89 color[0] = v;
90 color[1] = t;
91 color[2] = w;
92 break;
93 case 1:
94 color[0] = q;
95 color[1] = v;
96 color[2] = w;
97 break;
98 case 2:
99 color[0] = w;
100 color[1] = v;
101 color[2] = t;
102 break;
103 case 3:
104 color[0] = w;
105 color[1] = q;
106 color[2] = v;
107 break;
108 case 4:
109 color[0] = t;
110 color[1] = w;
111 color[2] = v;
112 break;
113 case 5:
114 color[0] = v;
115 color[1] = w;
116 color[2] = q;
117 break;
118 }
119 }
120
121 return color;
122}
123
124cv::Vec3f rgb2hsl(const cv::Vec3f& rgb)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected