상세 컨텐츠

본문 제목

색을 숫자로 표현한다면? - 디지털화된 색의 표현 모델

기타 정보/과학 정보

by Mathgongyoo 2013. 2. 27. 23:01

본문


디지털화된 색의 표현 모델

 

1. RGB(Red-Green-Blue) 모델

a)개요

RGB모델은 빛의 합성(가산혼합)을 토대로 한 모델이다. 세 가지 색-빨강, 초록, 파랑에 대한 변수인 R, G, B는 각각 0과 1 사이의 실수 값을 가지는데 수치가 높을수록 순수한 원색에 가까워진다. 웹문서를 제작할 때 사용하는 html 언어, RGB단자에 연결된 모니터 등에서 RGB모델로 색을 표현하며, 1의 크기를 가지던 가늠자는 0부터 255까지의 정수로 표현이 된다.

(ex/ #FF0000=빨강=(256, 0, 0), #000000=검정=(0, 0, 0) ←16진수)

 

b)RGB모델의 특징

①어떤 색의 R, G, B의 값들이 서로 동일하다면 이 색은 무채색이다.

R, G, B 값이 서로 유사하지 않을수록 채도가 높은 색이 된다.

R, G, B의 수치를 모두 합한 값이 클수록 명도가 높은 색이 된다.

   (=빛은 섞을수록 밝아진다.)

 

c)RGB모델의 수학적 의미

임의의 색을 (R, G, B)라는 벡터로 나타낸다면 이 벡터의 성분의 단위벡터를 기본벡터로 하는 하나의 공간좌표계를 정의할 수 있다. 이를 RGB색좌표계라 한다. ‘RGB색좌표계에서 정의된 색의 벡터’(이하 색벡터)의 연산은 특별한 의미를 가지게 된다.

 

① 색벡터의 덧셈

색벡터의 덧셈은 색의 가산혼합을 의미한다.

빨간색의 색벡터 와 초록색의 색벡터를 더한 새로운 색벡터 는 빨간색과 초록색을 가산혼합한 노란색을 의미하게 된다.

 

② 색벡터의 내적

색벡터의 내적은 특별한 의미를 가지지 않지만 색추출에서 내적은 벡터의 분해를 위해 꼭 필요하다. 벡터의 내적의 두 공식을 이용해 원래색의 벡터와 추출할 색의 벡터 사이의 각을 구할 수 있기 때문이다. 색추출의 이론을 살펴보자.

색벡터는 색추출의 대상이 되는 벡터이고 색벡터는 추출하는 색의 벡터이다. 그리고 색벡터 는 에 의해 에서 추출된 색의 벡터이다. (이 말은 곧 라는 색에서를 추출하면 이 된다는 것이다.)

여기서 삼각비의 정의에 의해임을 알 수 있고,

또 내적의 정의에 의해 도 알 수 있다.

한편 이므로 로 벡터 를 정의할 수 있다.

 

이제 식을 정리하여 를 구할 수 있다.

 


예) 주황색(255, 127, 0)에서 시안색(0, 255, 255)을 추출하면 색(0, 102, 102)가 나온다.

 

cf. 이런 방식의 색추출의 문제점은 번짐효과가 클 수 밖에 없다는 것에 있다.(색벡터가 서로 수직이 아닌 이상 내적의 결과는 0이 아니므로) 색추출의 아이디어는 여기서 소개된 것 외에도 여러가지가 있으며, 사진편집 프로그램에서 지원하는 색추출기능은 당연히 더 진보된 모델이다.

 

2. HSB(Hue-Saturation-Brightness) 모델(혹은 HSV(Hue-Saturation-Value) 모델)

a) 개요

HSB 모델은 색의 3속성인 색상, 명도, 채도를 기준으로 만들어진 모델이다. HSB에서 H는 색채, S는 채도, B는 명도를 의미하며, 원뿔좌표계 위에서 색을 정의한다. 원뿔의 가장자리로 갈수록 순수한 원색에 가까워진다.

 

b) H, S, B의 의미와 RGB모델과의 관계

①H는 색채를 의미하는데, HSB모델에서는 색의 스펙트럼이 순환하는 고리 형태로 되

   어있다. 즉, 0˚에서 360˚까지 색을 정의할 때 0˚와 360˚에 해당하는 색은 빨간색으로 동

   일하며, 사이에 정의된 값은 RGB에서 나타나는 사이클과 유사하다.

 

   H의 값을 RGB모델의 변수로 구하면 다음과 같다.

 

                             

   

②S는 채도를 의미한다. 채도는 색의 맑은 정도를 나타내는 값이다. 주가 되는 순색에

   색채가 다른 유채색이 많이 섞일수록 채도가 낮아진다.

 

   S의 값을 RGB모델의 변수로 구하면 다음과 같다.

 

                            

 

③B, 혹은 V는 명도를 의미한다. 명도란 일종의 색의 밝기를 의미한다. 순색에 무채색

   을 섞어서 명도를 조절할 수 있다.

 

   B의 값을 RGB모델의 변수로 구하면 다음과 같다.

 

                           

 

참고 사이트 : http://www.seray.co.kr/study_color_16.htm

 

http://ippbook.co.kr/

 

http://www.colorworld.kr/

 

 


도움이 되셨다면 추천해주세요 :)