라즈베리파이에서 Processing을 이용한 영상처리 기초-1

메카 2017-03-22 (수) 09:04 4년전 2936  

3장 프로세싱을 이용한 영상처리 기초


0. 영상처리에 대하여

  영상 처리란 디지털 카메라 센서, 디지털 비디오카메라, 스캐너 등에 의해 획득된 영상을 사용자의 목적에 맞게 변환하는 과정을 말한다. 이러한 영상 처리는 매일 우리 주변에서 많이 이루어지고 있다. 예를 들면, 휴대폰 카메라로 찍은 사진을 회전을 시켜 친구에게 보내기, 사진을 선명하게 해서 보내거나 저장하는 등 우리 주변에서 많이 사용하고 있다. 이 외에도 영상 처리는 영상 압축, 영상화질 개선, 특징 추출, 기하학적 변환, 등의 작업이 있다. 4차 산업 혁명에서 자율 주행을 위한 필수 항목 중의 하나가 물체 인식이며, 인식의 대부분이 카메라를 통하여 이루어지며, 입력된 영상을 목적에 맞게 처리하여 사물을 인지하고 있다. 그러므로 영상처리의 응용분야는 로봇, 의료, 방송, 영화, 보안 및 감시, 출판 등에서 폭넓게 활용되고 있다.

 

1. 픽셀 이해하기

  현대는 디지털 시대이다. 우리가 사용하고 있는 모니터는 디지털로 되어있다. 디지털 화면은 각각의 한 개를 여러 개 묶어서 만들어진 것이다. 이때 한 개의 단위가 픽셀이다. 즉 픽셀을 여러 개 묶어서 우리가 사용하고 있는 것이다. 그래서 디지털 화면은 픽셀이라고 하는 작은 사각형으로 구성되어 있는 것이다. 쉽게 말하면 컴퓨터 화면은 모눈종이처럼 되어 있다고 생각하면 된다. 그러므로 컴퓨터에 도형을 그리는 것은 모눈종이에 도형을 그리는 것으로 이해하면 된다. 가장 작은 구성 요소인 픽셀은 모눈종이가 좌표를 가지고 있는 것처럼 각각 좌표 값을 가지고 있다. 디지털 카메라로 획득되어진 영상도 같은 의미이다. 화면이 가로 100픽셀 및 세로 100픽셀이라면 좌표는 (0, 0)부터 (99, 99)까지 표시 할 수 있다. 좌표는 (0,0)부터 시작되므로 화면 크기가 100x100 픽셀일 때 마지막 위치를 (99, 99)라는 좌표로 표시할 수 있으며, 픽셀 수는 10000개 이다. 화면에서 가로를 X, 세로를 Y축으로 사용하므로 화면의 왼쪽 위가 (0, 0)이 된다. [그림 3-1]은 픽셀의 위치가 표시된 좌표를 나타낸다.

d359d6799b90841aa23d89d82d81c825_1490141
 [그림 3-1] 픽셀 좌표 이해하기

  

2. 영상처리를 위한 색의 이해

  영상처리를 위한 색의 종류는 컬러 영상과 흑백 영상으로 크게 분류 될 수 있다. 흑백 영상은 각 픽셀의 밝기만으로 영상을 표현한 것으로써, 0(검정)부터 255(흰색) 사이의 값으로 표현한다. 컬러 영상은 사용되는 색의 종류에 따라, RGB, CMY, HIS, YCbCr, YUV, UVW등의 컬러 모델이 있다. 이 가운데서 가장 많이 사용되는 RGB, CMY, HSI 컬러 모델에 대해 간략하게 알아본다.

 

  1) RGB 컬러 모델

    가장 기본적으로 사용되는 색상이며, 빛의 삼원색인 빨강(Red), 초록(Green), 파랑(Blue)으로 구성되어 있다. 3가지 색이 서로 얼마만큼 더해지느냐에 따라 다양한 색깔을 표현할 수 있다. 3가지 색을 사용하므로 그림3-2와 같이 3차원 좌표로 나타낼 수 있다. 빨강의 3차원 좌표는 (1,0,0)이며, 초록의 3차원 좌표는 (0,1,0)이고, 파랑의 3차원 좌표는 (0,0,1)로 표현된다. 프로세싱을 이용한 영상 처리에서도 이 좌표계를 사용 할 것이다[, color(R,G,B)]. 세 가지 모두를 사용할 경우 (1,1,1)이 되며 결과는 흰색이 된다. 세 가지 색이 모두 없을 경우 (0,0,0)이 되며, 검정색이 된다. 이 세 가지 색의 비율에 의해 다양한 색상이 표현된다. 여기서 영상은 8비트(256가지) 기준이며, 00의 값 그리고 1FF(255)를 의미한다. RGB 컬러 모델의 각 성분을 그림 3-3에 나타내었다.

    d359d6799b90841aa23d89d82d81c825_1490141
 

    [그림 3-2] RGB 컬러 모델

 

    d359d6799b90841aa23d89d82d81c825_1490141
   [그림 3-3] RGB 컬러 모델의 각 색깔별 표현, 위 좌측: 원영상, 위 우측: 빨강색, 아래 좌측: 초록, 아래 우측: 파랑색

 

  2) CMY 컬러 모델

    CMY 컬러 모델은 청록(Cyan), 자홍(Magenta), 노랑(Yellow)색으로 구성된다. RGB 컬러 모델은 모니터와 같이 검은색 위에 빨강, 초록, 파랑 세 가지 색을 이용하여 컬러를 만들어내며, CMY 컬러 모델은 반대로 하얀색 종이 청록, 자홍, 노랑 가지 색을 사용하여 컬러를 만들어낸다. RGB는 모니터에 사용되며, CMY는 컬러 프린터에서 주로 사용된다. 청록, 자홍, 노랑색을 모두 칠하면 빨강, 녹색, 파랑색을 모두 흡수하므로 검정색이 되므로 감산 혼합(Subtractive Color Mixing)이라 한다. 청록과 자홍색을 칠하면 빨강색과 초록색을 흡수하므로 파랑색이 된다. , 청록은 빨강, 자홍은 초록, 노랑은 파랑색을 흡수한다. 그래서 RGBCMY는 서로 보색관계에 있으므로 표 1처럼 두 모델의 상호변환이 가능하다.

RGB ==> CMY

CMY ==> RGB

C = 1.0-R

R = 1.0-C

M = 1.0-G

G = 1.0-M

Y = 1.0-B

B = 1.0-Y

 

 

  3) CMYK 컬러 모델

    이론상으로는 CMY컬러 모델로 모든 색의 표현이 가능하지만 잉크에 포함된 불순불에 의해 검정색의 표현이 제대로 되지 않기(갈색의 검정색) 때문에 순수 검정색 K(Black)를 추가한 컬러 모델이다. 그래서 우리가 일반적으로 컬러 프린터에서 검정색을 따로 사용하는 것도 이러한 이유이다. 다른 이유는 검정색을 내기위해 세 가지 색을 혼합해서 사용하므로 토너 소모 비율이 높아져서 비효율적인 비용이 소모된다.

CMY 컬러 모델의 색상 값을 CMYK 컬러 모델 변환 식은 아래와 같다.

 

K = Min(C,M,Y)

C = (C-K)/(1-K)

M = (C-K)/(1-K)

Y = (C-K)/(1-K)

 

  4) HSI 컬러 모델

    HSI는 컬러 모델은 인간의 시각 시스템과 비슷한 컬러 모델이다. I(Intensity)는 명도로써 발기의 정도를 의미하며, H(Hue)는 색상, S(Saturation)는 색의 탁하고 맑음을 나타내는 채도를 의미한다. 영상처리와 영상인식에서 HSI 컬러 모델을 사용할 때, H, S, V는 각각 0 ~ 255 사이의 값으로 표현된다. H 값은 색의 종류를 나타내기 때문에 크기는 의미가 없으며 단순한 인덱스(index)를 나타낸다. S 값은 0이면 무채색(gray ), 255면 가장 선명한(순수한) 색임을 나타낸다. I 값은 작을수록 어둡고 클수록 밝은 색임을 나타낸다. HSI 컬러 모델은 그림 3-4와 같이 원뿔 모양의 좌표계로 표현된다. 색상은 원뿔 둘레를 따라 0도에서 360도의 범위를 가진 각도로 표현된다. 원뿔 중심에서의 채도는 0으로써 흰색이 100%되며, 가장자리의 채도는 1이 되어 흰색이 전혀 섞이지 않은 순수한 원색이 된다. 가장 아래쪽의 명도가 0이고 검정색을 의미하며, 가장 위의 명도는 1이고 흰색을 의미한다. RGB 컬러로부터 HSI컬러로 변환하는 것이 가능하며, 다음 식과 같다.

 

 d359d6799b90841aa23d89d82d81c825_1490141


02c7232450ce0f92271d32085c8e4707_1491182
[그림 3-4] HSI 컬러 모델 모델 

 

메카리워즈 Image Map


모바일 버전으로 보기