2010-05-05 6 views
1

기본적으로 2 가지 색상이 혼합되어 있습니다. color1color2. 간단한 계산 결과 blue + yellow = gray ((color1.r + color2.r)/2 등)와 같은 것들이 생겼습니다. 나는 약간의 연구를했는데, 혼합 색상이 우리가 기대하는 것처럼 보이도록 색상을 섞어 놓은 것을 발견했습니다 (예 : 파란색 + 노란색 = 녹색). isn ' 바로 그.RGB 색상 혼합 (L * a * b *)

또 다른 stackoverflow 게시물은 두 사람이 올바르게 혼합물을 이루기 위해서 b * space/CIELAB을 사용하고이 주제에 관한 위키피디아 페이지에 링크해야한다고했습니다.

나는이 정보를 발견하지만 난 정말 L (sRGB를 그리고보다는)에 RGB로 변환하는 방법을 이해 수없는 B * - 얻어진 색상을 혼합하는 방법과 내가 희망

다시 변환하는 방법 여기에 누군가가 나에게

감사합니다,

사무엘

+2

http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html –

+0

감사합니다. 내가 필요로하는 것처럼 보입니다. 즉시 파고 들어보세요. – Samuel

답변

0

1) RGB에서 sRGB로 변환을 할 수 있습니다. GEGL에서 :

 

static inline double 
linear_to_gamma_2_2 (double value) 
{ 
    if (value > 0.0030402477F) 
    return 1.055F * pow (value, (1.0F/2.4F)) - 0.055F; 
    return 12.92F * value; 
} 
 

static inline double 
gamma_2_2_to_linear (double value) 
{ 
    if (value > 0.03928F) 
    return pow ((value + 0.055F)/1.055F, 2.4F); 
    return value/12.92F; 
} 
 

2) RGB to CIELAB. OpenCV 소스 [/src/cv/cvcolor.cpp]를보십시오. 색상 공간 변환을위한 함수가 있습니다 [icvBGRx2Lab_32f_CnC3R]

3) 혼합 색상 채널.

4) 모든 색상 변환을 되돌립니다.

+0

로스, "믹스 코어 채널"에 대해 좀 더 구체적으로 말씀해 주시겠습니까? 각 L * a * b * 값의 수학 평균을하는 것을 의미합니까? 명확히하십시오. –