2012-08-09 2 views
1

Photoshop처럼 색온도를 1000에서 10.000 사이로 설정하도록 지정되었습니다. 지금까지 나는 값을 보여주는 테이블을 찾을 수만 있었다. here 나는 Gimp에서 같은 함수를 찾으려고 노력했다. (오픈 소스이기 때문에 코드를 읽음으로써 배울 것이지만) 직접적으로 동일한 것은 없다. 나는 컬러 레벨을 선택하고 커브를 구부려 야한다. 나는 고객이 포토샵 에서처럼 값을 설정하기를 원한다고 들었다. 누구나 눈금을 만들기 위해 올바른 방향을 가르키고 있습니까?주어진 이미지의 색온도 설정 (Photoshop과 같은)

편집 : 링크가 수정되었습니다.

답변

5

당신은 이미 각 색상 온도 RGB 등가물의 테이블을 발견했지만, 내가 내 자신을 발견 어디 말을하지 않았다 http://www.vendian.org/mncharity/dir3/blackbody/

자연 장면 비례하여 빛의 색에 빛을 반사를 그 그것을 공격합니다. 이것은 간단한 선형 변환이 원하는 효과를 만들어 내야 함을 의미합니다. 기존 이미지가 이미 흰색 균형을 이루어 순수한 흰색이 (255,255,255)라고 가정하면 각 픽셀의 r, g, b 값에 ​​색온도에 해당하는 비율을 곱하면됩니다.

다음은 Python의 샘플 코드입니다. 곱셈은 ​​행렬을 사용하여 간접적으로 수행됩니다.

from PIL import Image 

kelvin_table = { 
    1000: (255,56,0), 
    1500: (255,109,0), 
    2000: (255,137,18), 
    2500: (255,161,72), 
    3000: (255,180,107), 
    3500: (255,196,137), 
    4000: (255,209,163), 
    4500: (255,219,186), 
    5000: (255,228,206), 
    5500: (255,236,224), 
    6000: (255,243,239), 
    6500: (255,249,253), 
    7000: (245,243,255), 
    7500: (235,238,255), 
    8000: (227,233,255), 
    8500: (220,229,255), 
    9000: (214,225,255), 
    9500: (208,222,255), 
    10000: (204,219,255)} 


def convert_temp(image, temp): 
    r, g, b = kelvin_table[temp] 
    matrix = (r/255.0, 0.0, 0.0, 0.0, 
       0.0, g/255.0, 0.0, 0.0, 
       0.0, 0.0, b/255.0, 0.0) 
    return image.convert('RGB', matrix) 

다음은 몇 가지 샘플입니다. 첫 번째는 원본이며 그 다음에 2500K와 9500K의 출력이 이어집니다. 2500K 9500K

+0

Original

대답 주셔서 감사합니다. 나는 html을 포함하는 실수를했다고 생각합니다. "여기"라고 말하는 사람이 있어야합니다 :) –

관련 문제