赞
踩
代码
- int calc_ccm(double *r, double *g, double *b, double *R, double *G, double *B, int num, double *ccm)
- {
- double sum_rr=0, sum_gg=0, sum_bb=0, sum_rg=0, sum_gb=0, sum_rb=0;
- double sum_rR=0, sum_gR=0, sum_bR=0, sum_rG=0, sum_gG=0, sum_bG=0, sum_rB=0, sum_gB=0, sum_bB=0;
- int i, j;
-
- for (i=0; i<num; i++)
- {
- sum_rr += r[i]*r[i];
- sum_gg += g[i]*g[i];
- sum_bb += b[i]*b[i];
- sum_rg += r[i]*g[i];
- sum_gb += g[i]*b[i];
- sum_rb += r[i]*b[i];
- sum_rR += r[i]*R[i];
- sum_gR += g[i]*R[i];
- sum_bR += b[i]*R[i];
- sum_rG += r[i]*G[i];
- sum_gG += g[i]*G[i];
- sum_bG += b[i]*G[i];
- sum_rB += r[i]*B[i];
- sum_gB += g[i]*B[i];
- sum_bB += b[i]*B[i];
- }
- double sum_r2b2_rb2 = sum_rr*sum_bb - sum_rb*sum_rb;
- double sum_r2g2_rg2 = sum_rr*sum_gg - sum_rg*sum_rg;
- double sum_g2b2_gb2 = sum_gg*sum_bb - sum_gb*sum_gb;
- double sum_rgrb_r2gb = sum_rg*sum_rb - sum_rr*sum_gb;
- double sum_rggb_g2rb = sum_rg*sum_gb - sum_gg*sum_rb;
- double sum_gbrb_b2rg = sum_gb*sum_rb - sum_bb*sum_rg;
- double q = sum_rr*sum_gg*sum_bb - sum_rr*sum_gb*sum_gb - sum_gg*sum_rb*sum_rb
- - sum_bb*sum_rg*sum_rg + 2*sum_rg*sum_rb*sum_gb;
-
- ccm[0] = (sum_g2b2_gb2*sum_rR + sum_gbrb_b2rg*sum_gR + sum_rggb_g2rb*sum_bR)/q;
- ccm[1] = (sum_gbrb_b2rg*sum_rR + sum_r2b2_rb2*sum_gR + sum_rgrb_r2gb*sum_bR)/q;
- ccm[2] = (sum_rggb_g2rb*sum_rR + sum_rgrb_r2gb*sum_gR + sum_r2g2_rg2*sum_bR)/q;
- ccm[3] = (sum_g2b2_gb2*sum_rG + sum_gbrb_b2rg*sum_gG + sum_rggb_g2rb*sum_bG)/q;
- ccm[4] = (sum_gbrb_b2rg*sum_rG + sum_r2b2_rb2*sum_gG + sum_rgrb_r2gb*sum_bG)/q;
- ccm[5] = (sum_rggb_g2rb*sum_rG + sum_rgrb_r2gb*sum_gG + sum_r2g2_rg2*sum_bG)/q;
- ccm[6] = (sum_g2b2_gb2*sum_rB + sum_gbrb_b2rg*sum_gB + sum_rggb_g2rb*sum_bB)/q;
- ccm[7] = (sum_gbrb_b2rg*sum_rB + sum_r2b2_rb2*sum_gB + sum_rgrb_r2gb*sum_bB)/q;
- ccm[8] = (sum_rggb_g2rb*sum_rB + sum_rgrb_r2gb*sum_gB + sum_r2g2_rg2*sum_bB)/q;
-
- //normalize
- for (i=0; i<3; i++)
- {
- double scale = 0;
- for (j=0; j<3; j++)
- {
- scale += ccm[i*3+j];
- }
- for (j=0; j<3; j++)
- {
- ccm[i*3+j] /= scale;
- }
- }
-
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。