Given RGB color range, our task is to convert RGB color to HSV color.
RGB Color Model :
The RGB color model is an additive color model in which red, green and blue light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three additive primary colors, red, green, and blue.
HSV Color Model :
HSV – (hue, saturation, value), also known as HSB (hue, saturation, brightness), is often used by artists because it is often more natural to think about a color in terms of hue and saturation than in terms of additive or subtractive color components. HSV is a transformation of an RGB colorspace, and its components and colorimetry are relative to the RGB colorspace from which it was derived.
Input : r, g, b = 45, 215, 0 Output : h, s, v = 107.44186046511628, 100.0, 84.31372549019608 Input : r, g, v = 31, 52, 29 Output : h, s, v = 114.78260869565217, 44.230769230769226, 20.392156862745097
- Divide r, g, b by 255
- Compute cmax, cmin, difference
- Hue calculation :
- if cmax and cmin equal 0, then h = 0
- if cmax equal r then compute h = (60 * ((g – b) / diff) + 360) % 360
- if cmax equal g then compute h = (60 * ((b – r) / diff) + 120) % 360
- if cmax equal b then compute h = (60 * ((r – g) / diff) + 240) % 360
- Saturation computation :
- if cmax = 0, then s = 0
- if cmax does not equal 0 then compute s = (diff/cmax)*100
- Value computation :
- v = cmax*100
Below is the implementation of above approach :
(30.0, 63.56589147286821, 50.588235294117645)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.