#ifndef COLORS_H #define COLORS_H #include /* for guchar */ void compute_ref(); /* Input: RBG point in range 0-255 Output: H S L values in range 0-255 */ void point_rgb2hsl( guchar *R, guchar *G, guchar *B, guchar *h, guchar *s, guchar *l ); /* Input: RBG point in range 0-255 Output: X Y Z values in range 0-1 */ void point_rgb2xyz_normalized( guchar *R, guchar *G, guchar *B, float *x, float *y, float *z ); /* Input: RBG point in range 0-255 Output: X Y Z values in range 0-255 */ void point_rgb2xyz( guchar *R, guchar *G, guchar *B, guchar *x, guchar *y, guchar *z ); /* Input: X Y Z values in range 0-1 Output: U V values in range 0-1 */ void xyz_normalized2uv_prime_normalized( float *x, float *y, float *z, float *u, float *v); /* Input: X Y Z values in range 0-1 Output: U V values in range 0-1 */ void xyz_normalized2uv_normalized( float *x, float *y, float *z, float *l_star, float *u, float *v); /* Input: X Y Z values in range 0-1 Output: A B values in range 0-1 */ void xyz_normalized2ab_normalized( float *x, float *y, float *z, float *a, float *b); /* Input: X Y Z values in range 0-1 Output: l-star values in range 0-1 */ void xyz_normalized2l_star_normalized(float *x, float *y, float *z, float *l_star); /* Input: one values of X Y Z in range 0-1 Output: ? */ void partial_lab_function( float *coord, float *ref, float *funct); /*Input: RGB point in range 0-255 Output: LUV point in range 0-255*/ void point_rgb2luv( guchar *R, guchar *G, guchar *B, guchar *l_star, guchar *u, guchar *v ); /*Input: RGB point in range 0-255 Output: LAB point in range 0-255*/ void point_rgb2lab( guchar *R, guchar *G, guchar *B, guchar *l_star, guchar *a, guchar *b ); void point_rgb2hslxyzluvab( guchar *R, guchar *G, guchar *B, guchar *h, guchar *s, guchar *l, guchar *x, guchar *y, guchar *z, guchar *l_star, guchar *u_star, guchar *v_star, guchar *a_star, guchar *b_star ); #endif /* COLORS_H */