cc.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #ifndef _CC_H_
  2. #define _CC_H_
  3. enum {
  4. ccTA_2, ccTC_2, D50_2, D55_2, D65_2, D75_2, F2_2, F7_2, F11_2,
  5. ccTA_10, ccTC_10, D50_10, D55_10, D65_10, D75_10, F2_10, F7_10, F11_10,
  6. ccNTristimulus
  7. };
  8. enum { ccX, ccY, ccZ};
  9. /*
  10. * Function Headers
  11. */
  12. namespace OBJREC {
  13. class ColorConversion
  14. {
  15. private:
  16. static double ccmin(double val1, double val2, double val3);
  17. static double ccmax(double val1, double val2, double val3);
  18. static double Hue_2_RGB( double v1, double v2, double vH );
  19. static double degree_2_radian(double val);
  20. public:
  21. static int ccXYZtoRGB(double x, double y, double z, double* r, double* g, double* b, char ObsIll); //
  22. static int ccRGBtoXYZ(double r, double g, double b, double* x, double* y, double* z, char ObsIll); //
  23. static int ccXYZtoYxy(double x, double y, double z, double* rY, double* rx, double* ry);//
  24. static int ccXYZtoLMS(double x, double y, double z, double* l, double* m, double* s);//
  25. static int ccLMStoOPP(double l, double m, double s, double* lum, double* lm, double* slm);//
  26. static int ccYxytoXYZ(double Y, double x, double y, double* rx, double* ry, double* rz);//
  27. static int ccXYZtoHunterLab(double x, double y, double z, double* L, double* a, double* b); //
  28. static int ccHunterLabtoXYZ(double L, double a, double b, double* x, double* y, double* z); //
  29. static int ccXYZtoCIE_Lab(double x, double y, double z, double* L, double* a, double* b, char ObsIll); //
  30. static int ccCIE_LabtoXYZ(double L, double a, double b, double* x, double* y, double* z, char ObsIll); //
  31. static int ccCIE_LabtoCIE_LCH(double L, double a, double b, double* rL, double* rC, double* rH);
  32. static int ccCIE_LCHtoCIE_Lab(double L, double C, double H, double* rL, double* ra, double* rb);
  33. static int ccXYZtoCIE_Luv(double x, double y, double z, double* L, double* u, double* v, char ObsIll);
  34. static int ccCIE_LuvtoXYZ(double L, double u, double v, double* x, double* y, double* z, char ObsIll);
  35. static int ccRGBtoHSL(double L, double a, double b, double* h, double* s, double* l); //
  36. static int ccHSLtoRGB(double h, double s, double l, double* r, double* g, double* b); //
  37. static int ccRGBtoHSV(double r, double g, double b, double* h, double* s, double* v); //
  38. static int ccHSVtoRGB(double h, double s, double v, double* r, double* g, double* b); //
  39. static int ccfRGBtoCMY(double r, double g, double b, double* c, double* m, double* y); //
  40. static int cciRGBtoCMY(int r, int g, int b, double* c, double* m, double* y); //
  41. static int ccCMYtofRGB(double c, double m, double y, double* r, double* g, double* b); //
  42. static int ccCMYtoiRGB(double c, double m, double y, int* r, int* g, int* b); //
  43. static int ccCMYtoCMYK(double c, double m, double y, double* C, double* M, double* Y, double* K); //
  44. static int ccCMYKtoCMY(double c, double m, double y, double k, double* C, double* M, double* Y); //
  45. static int ccFixRGB(double* r, double* g, double* b);
  46. };
  47. } // namespace
  48. #endif