cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageColorRGB2HSV_Fp(mlib_image *dst, const mlib_image *src);
The mlib_ImageColorRGB2HSV_Fp() function performs a conversion from red/green/blue to hue/saturation/value. The source and destination images must be three-channel images.
It uses the following equations:
V = max(R, G, B) Vmin = min(R, G, B) S = (V - Vmin)/V H = (5.0 + (V - B)/(V - Vmin))/6 if R = V and G = Vmin H = (1.0 - (V - G)/(V - Vmin))/6 if R = V and B = Vmin H = (1.0 + (V - R)/(V - Vmin))/6 if G = V and B = Vmin H = (3.0 - (V - B)/(V - Vmin))/6 if G = V and R = Vmin H = (3.0 + (V - G)/(V - Vmin))/6 if B = V and R = Vmin H = (5.0 - (V - R)/(V - Vmin))/6 if B = V and G = Vmin H = 0.0 if R = G = B
where 0 ≤ R, G, B, V, Vmin, S ≤ 1 and 0 ≤ H < 1.
For MLIB_FLOAT and MLIB_DOUBLE images, the above equations are followed verbatim. Input R, G, and B component values must be limited to the [0.0, 1.0] range.
The function takes the following arguments:
Pointer to destination image.
Pointer to source image.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|
mlib_ImageColorHSV2RGB(3MLIB), mlib_ImageColorHSV2RGB_Fp(3MLIB), mlib_ImageColorRGB2HSV(3MLIB), attributes(5)