2013-04-07 1 views
2

0.0에서 1.0까지의 값을 색상 표현 (각 값은 픽셀 임)으로 변환해야합니다. 나는 스펙트로 그램을 만들었으므로 픽셀이 가장 밝은 값이 높을수록 (아래 그림과 같이) 픽셀이 있어야합니다.값 [0.0-1.0]을 색상 게인으로 매핑

어떻게하면됩니까? 나는 C#에서 일하고 있지만 보편적으로 적용 할 수있는 솔루션도 괜찮습니다.

예 :

enter image description here

+0

너는 이렇게 보이길 원하니? 그냥 붉은 색을 원한다. 'red = 255 * value' – Serdalis

+0

위의 예와 같을 필요는 없지만 단지 하나의 색상 (예 : 빨강)이 아닌 색상 표현으로 변환하고 싶다. –

+1

빨간색과 노란색 및 녹색에 대해 'R = 값 * 255, G = 255-R, B = 0'을 할 수 있습니다. – Serdalis

답변

5

이 답변만을 어떻게 하나의 float 값에서 색상을 만드는 방법을 보여주지해야하지만 출력이 꽤 잘 표시된 강도 스케일과 유사하여야한다.

private float LinearStep(float x, float start, float width = 0.2f) 
{ 
    if (x < start) 
     return 0f; 
    else if (x > start+width) 
     return 1; 
    else 
     return (x-start)/width; 
} 

private float GetRedValue(float intensity) 
{ 
    return LinearStep(intensity, 0.2f); 
} 

private float GetGreenValue(float intensity) 
{ 
    return LinearStep(intensity, 0.6f); 
} 

private float GetBlueValue(float intensity) 
{ 
    return LinearStep(intensity, 0f) 
    - LinearStep(intensity, 0.4f) 
    + LinearStep(intensity, 0.8f); 
} 

private Color getColor(float intensity) 
{ 
    return Color.FromArgb(255, 
     (int)(255*GetRedValue(intensity)), 
     (int)(255*GetGreenValue(intensity)), 
     (int)(255*GetBlueValue(intensity)) 
    ); 
} 

메모장에서이 작업을 수행 했으므로 테스트를 거치지 않았습니다. 그러나 당신은 아이디어를 얻어야합니다 ;-)

물론 이것을 사용하여 찾아보기 테이블을 만들 수 있습니다. figure 1

  1. 는 "순수"색상을 식별 : 나는 코멘트에이 이미지를 넣을 수 없기 때문에 그


    ;-) 전적으로 당신에게 달려 있습니다, 여기에이 솔루션에 도착하는 방법을 과정이다 . 이 말은 모든 구성 요소가 255 또는 0 인 8 색상 팔레트에있는 색상을 의미합니다.

  2. 점선을 그립니다. 이 시점에서 rgb 값을 알 수 있습니다.
  3. 선형 보간.

3 단계는 코드의 LinearStep() 함수로 수행되며 각 기울기마다 하나씩 호출됩니다. 오름차순 슬로프가 추가되고 내림차순 슬로프가 뺍니다. 이 작업에 대해 잘 모르는 경우 원본 색상 맵을 사용하여이 작업을 수행하십시오. 여기에서 받아 들일 수 있기를 바랍니다 :-)

+0

수정 없이도 효과적이었습니다 :) [이 척도] (http://www.spectraplus.com/images/Screenshots/spectrogram_small.jpg)를 얻으려면 어떻게 수레를 조정해야합니까? –

+1

제 편집 내용을 참조하십시오. 답변 뒤에 생각 프로세스가 자세히 나와 있습니다 :-) –

+0

굉장, 고마워;) –

1

여기에 보이는 것은 의사 색 또는 허위 색상을 사용하는 것입니다. 적용 분야에 따라 palettes이 사용되는 경향이 있지만 표시되는 것은 많이 보입니다. thermography에 일반적으로 사용되는 것과 비슷하지만 사용 분야에 더욱 적합 할 수있는 몇 가지 다른 항목이 있습니다. 그리고 그러한 팔레트의 구성은 방금 rgb 구성 요소를 순환하는 것보다 조금 더 정교합니다.

위로 잘못된 색상 이미지로 작업했을 때 입력 값에 해당하는 색상을 얻는 가장 빠른 방법 이었기 때문에 조회 테이블을 사용했습니다. 256 색 값을 포함하는 배열은 조회 테이블로 모두 필요합니다. 개인적으로 나는 당신이 좋아하는 색 스케일에서 픽셀을 읽고 주 프로그램에서 사용하여 일부 소스 코드를 구성하는 작은 프로그램을 작성하는 것이 좋습니다. 아마도 소스 코드 나 색조 정보를 사용할 준비가되어있을 것입니다. 어쩌면 키워드 열 분석과 의사 색/거짓 색이 검색에 도움이 될 수 있습니다.