• ||
    여러 가지 색 테이블에 대한 설명. ( )
  • 2009/09/23
  •  

  • 안녕하세요.^^ 이번에 FPGA로 영상처리를 하는 기회가 생겼습니다. 옛날 부터 생각했지만 FPGA에서 영상처리를 하는 경우 역시 빠르더군요. 이번에 사용한 영상처리 관련 기술로는 Filter밖에 없지만 그래도 720, 480이라는 Size를 생각하면 처리 속도가 빨랐습니다. 이번에 블로그 제목을 '여러 가지 색 테이블'로 잡았는데요. 영상 처리에서 중요한 부분이 색을 어떻게 다루는 것입니다. 이 색을 어떻게 다루냐에 따라서 Filter에서 처리하는 결과가 만족 할 수 있고 그렇지 않을 수도 있으니까요. 자 그럼 본격적으로 색 테이블에 대해 설명하겠습니다. 먼저 알고 계시는지요. 각각 사람들이 보는 색이 다르다는 것을요. 그 만큼 색이란 '이 것이다'라고 정의하기 힘들죠. 그렇기 때문에 이를 정의 하기 위해 여러 방법으로 색을 결정하게 됩니다. 그럼 어떤 것이 있는지 알아 보겠습니다.

    1. RGB Table [##_1C|1244563363.gif|width="373" height="310" alt="사용자 삽입 이미지"|_##] 
    [RGB Color Table]

    - 가장 기본적인 Table이라고 할 수 있습니다. CRT컬러 모니터가 처음 나올 시 Red, Blue, Green 값을 기준으로 이 세 가지 색을 혼합하여 여러가지 색을 만들 수 있습니다. 하지만 RGB Table에는 많은 허점이 있습니다. 조명에 매우 민감하다는 것입니다. 그렇기 때문에 영상처리를 함에 있어서 RGB값 만을 사용하는 경우는 거의 없습니다.

    2. HSI Table [##_1C|1358474031.jpg|width="569" height="224" alt="사용자 삽입 이미지"|_##]                                                             [HSI Color Table]

    [##_1C|1282575519.jpg|width="295" height="172" alt="사용자 삽입 이미지"|_##] 
    [RGB to HSI 색 변환 공식]

    - 색상(Hue), 채도(Saturation), 명도(Intensity)라는 세 가지 특성들이 컬러를 설명하는데 사용되기 때문에 이와 대응되는 컬러 모델을 HSI라고 합니다. HSI 컬러 공간을 사용할 때 어떤 컬러를 만들어 내기 위해서 몇 퍼센트의 파란색이나 녹색이 필요한지 알 필요가 없게 되죠. 진한 빨간색을 분홍색으로 바꾸기 위해 단순히 채도를 조절합니다. 어두운 것을 밝게 하려면 명도를 변경합니다. 색상 : 0도에서 360도의 범위를 가진 각도로 표현 합니다. 채도 : 0에서 1까지의 범위를 가지는 반지름에 해당합니다. 명도 : z축에 해당하는데 0일 때는 검정색을, 1일때는 흰색을 나타냅니다. 채도가 1일때, 그 컬러는 원뿔기반의 모형의 꼭대기 가장자리에 위치합니다. 채도가 강할수록 그 컬러는 명도에 따라서 흰색->회색->검정색이 됩니다. 색상의 조절은 각도에 따라 0도에서는 빨간색, 120도에서는 녹색, 240도에서는 파란색, 360도에서는 다시 빨간색으로 변합니다. 명도가 0이면 컬러는 검정색이어서 색상은 정의되지 않습니다.

    3. YUV Table [##_1C|1228968945.jpg|width="180" height="180" alt="사용자 삽입 이미지"|_##]                                                             [YUV Color Table]

    [##_1C|1304542816.jpg|width="417" height="75" alt="사용자 삽입 이미지"|_##]                                                         [RGB to YUV 색 변환 공식]

    [##_1C|1320372244.jpg|width="331" height="73" alt="사용자 삽입 이미지"|_##]                                                         [YUV to RGB 색 변환 공식]

    - Y(Iuma component)와 U, V(chrominance components)로 구성된 YUV는 Y채널은 색의 명암을 나타내고 U와 V채널은 두 가지가 동시에 색을 결정합니다. YUV는 과거 흑백 티비 시절에 컬러 티비를 보기 위해 개발된 것 입니다. 흑백 티비에서는 Y채널정보만을 처리해 출력해 주고, 컬러 티비는 U, V채널 정보도 같이 처리해 컬러 영상까지 볼 수 있게 되는 것이죠, 이런 방식의 한 가지 장점은 밝기 정보와 컬러 정보를 분리할 수 있다는 점입니다. 사람의 눈은 컬러 보다는 밝기에 훨씬 민감합니다. 그렇기 때문에 대역폭을 줄이기 위해 밝기 정보는 그대로 두고 컬러 정보를 최대한 줄여 화질의 손상이 크게 눈에 띄지 않은 채 대역폭을 줄일 수 있게 되는 것 입니다. 이러한 이유로 Y채널 정보는 이미지 크기만큼만 필요하고 U, V채널정보는 2*2pixels를 한 색으로 나타내는 방식의 정보가 필요하게 됩니다.

    4. Lab Table [##_1C|1189537782.jpg|width="271" height="324" alt="사용자 삽입 이미지"|_##]                                                              [Lab Color Table]

    [##_1C|1378478986.jpg|width="600" height="340" alt="사용자 삽입 이미지"|_##] [##_1C|1068992265.jpg|width="600" height="271" alt="사용자 삽입 이미지"|_##]                                                             [RGB to Lab 색 변환 공식]

    - Lab Color는 CIE(Centre Internationale dEclairage)에서 만든 컬러 모델입니다. Lab Color의 가장 큰 목적은 '같은 색이라 해도 출력 장치에 따라 다르게 나오는 단점을 보완하는 것'입니다. 출력장치에 따른 색의 차이를 완전히 없애는 것은 근본적으로 불가능 하지만 그 차이를 최소한으로 줄이는 것은 가능 합니다. 이에 Lab시스템은 CIE에서 이전에 사용해 왔던 CIE 모델을 기본으로 발표된 것으로 xyz 3개의 축상에서 입체적으로 색을 표현할 수 있습니다. L(Luminosity)축은 밝기를 나타냅니다. a는 green에서 magenta 까지의 보색, b는 blue에서 yellow까지의 보색을 나타 냅니다. a와 b는 색상(Hue)에 관한 정보를 가지고 있으며 L축은 색의 밝기에 관한 모든 정보를 가지고 있게 되는 셈이죠. Lab 시스템에서 L값을 조절하면 Hue의 값에 영향을 미치지 않지만 HSB시스템에서 보면 B(Brightness)로는 나타낼 수 없는 범위가 생깁니다. 이 때문에 Hue 값이 바뀌게 되죠. 간단하게 몇 가지 색 테이블을 살펴 봤는데요. 이 외에도 여러 가지의 색 테이블이 존재 합니다.(찾다보니...양이 많더라고요) 역시 아직까지는 우리의 눈으로 보는 모든 색을 디지털화 시키기에는 역부족이구나 하는 생각이 들었습니다. 그럼 색 테이블을 잘 이용해서 원하는 색을 잘 뽑아 낼 수 있길 바랍니다. 그럼 이만 마치겠습니다.
  •  
  • TRACKBACK : http://www.swssm.org/trackback.php?id=347
  •  
  •  
  • [prev] ... 1 ... [next]
 
삼성전자 소프트웨어 멤버십
과제 Tech Note 입니다.

최근 글