픽셀 기반 처리
디지털 영상을 생성하기 위해서는 먼저 아날로그 영상을 디지털 영상으로 변환해야 합니다. 이 과정은 샘플링 과 양자화 로 이루어져 있습니다.
샘플링(sampling)
샘플링은 현실 세계의 연속적인 영상 데이터를 컴퓨터가 처리할 수 있는 이산적인 데이터로 변환하는 과정입니다.
샘플링은 공간상의 2차원 함수를 특정 좌표 (x, y)에서 값을 추출하는 과정입니다. 이 추출된 값을 화소(pixel) 라고 합니다.
샘플링 요소
- 화소: 샘플링 과정에서 추출된 값을 화소라고 합니다. 화소는 영상의 가장 작은 구성 단위이며, 각 화소에는 밝기, 색상 등의 정보가 저장됩니다.
- 해상도: 해상도는 영상의 섬세함을 나타내는 지표이며, 화소의 개수로 표현됩니다. 일반적으로 화소 수가 많을수록 해상도가 높아지고 영상이 더욱 섬세하게 표현됩니다. 해상도는 가로(x) 화소 수와 세로(y) 화소 수의 곱으로 계산됩니다.
예를 들어, 1920x1080 해상도의 영상은 가로 방향으로 1920개, 세로 방향으로 1080개의 화소로 구성되어 있습니다.
양자화(quantization)
샘플링 단계에서 추출된 화소 값들은 아직 연속적인 값입니다. 하지만 컴퓨터는 이산적인 데이터만을 처리할 수 있기 때문에, 양자화 단계를 거쳐 이산적인 값으로 변환해야 합니다. 이 과정을 양자화라고 합니다.
양자화는 샘플링된 각 화소의 밝기 값을 특정 범위 내의 값으로 근사화하는 과정입니다. 즉, 연속적인 값을 제한된 개수의 이산적인 값으로 변환하는 과정입니다.
양자화 스케일은 화소의 밝기 값이 얼마나 세분화되는지를 나타내는 지표이며, 일반적으로 256단계로 양자화됩니다.
샘플링은 광대한 들판에서 몇 개의 꽃만을 골라내는 것과 같습니다.
양자화는 (골라낸 꽃들을 그리려고 할 때,) 화가가 팔레트에서 제한된 색만을 사용하여 그림을 그리는 것과 같습니다.
컬러 모델
컬러 모델은 컬러를 표현하는 방법을 정의한 모델입니다. 컬러 모델은 크게 RGB, CMY, HSI 등이 있습니다.
응용 분야에 따라 적합한 컬러 모델을 선택하여 사용해야 합니다.
RGB 모델
RGB 모델은 빛의 삼원색인 빨강(Red), 초록(Green), 파랑(Blue) 을 조합하여 다양한 색상을 표현하는 모델입니다.
RGB 모델은 컴퓨터 그래픽스, 영상처리 등에서 가장 많이 사용되는 컬러 모델입니다.
CMY 모델
CMY 모델은 빛을 흡수하는 삼원색인 청록(Cyan), 자홍(Magenta), 노랑(Yellow) 을 조합하여 다양한 색상을 표현하는 모델입니다.
CMY 모델은 인쇄, 사진, 컬러 프린터 등에서 사용되는 컬러 모델입니다.
HSI 모델
HSI 모델은 색상(Hue), 채도(Saturation), 명도(Intensity) 세 가지 요소로 색상을 표현하는 모델입니다.
HSI 모델은 색상의 특성을 직관적으로 이해할 수 있기 때문에 컬러 영상 처리에서 많이 사용됩니다. 특히 색상, 채도, 명도를 다루는 작업에 적합합니다.
픽셀 기반 처리
픽셀 기반 처리란 각 화소의 값을 직접적으로 조작하여 영상을 변환하거나 개선하는 방법입니다. 픽셀 기반 처리에서는 영상을 전체적인 구조로 파악하기보다는, 각 화소의 값을 변화시킴으로써 원하는 결과를 얻습니다.
| 장점 | 단점 |
|---|---|
| 간단하고 직관적인 방식 | 영상의 전체적인 구조나 특징을 고려하지 않음 → 자연스럽지 않은 결과를 초래할 수 있음 |
| 특정 영역에만 집중적으로 처리 가능 | 인근 화소들 간의 관계를 고려하지 않음 → 경계가 뚜렷해지는 결과를 초래할 수 있음 |
픽셀 기반 처리 기법들
- 산술 연산
- 히스토그램 평활화
- 명암대비 스트레칭
- 이진화
산술 연산
산술 연산은 화소에 일정한 값을 더하거나, 빼거나, 곱하거나, 나누는 연산을 말합니다. 산술 연산은 화소 간의 관계를 직접적으로 조작할 수 있기 때문에, 영상의 밝기나 명암을 조절하는 데에 사용됩니다.
- 덧셈 연산 & 뺄셈 연산: 영상의 밝기 값을 조절
overflow, underflow 주의
- 곱셈 연산 & 나눗셈 연산: 영상의 명암 대비를 조절
division by zero 주의
히스토그램 평활화(equalization)
히스토그램 평활화는 영상의 명암 대비를 향상시키기 위한 방법입니다. 기존 영상의 명암 값 분포를 재분배하여 일정한 분포를 가진 히스토그램을 생성합니다.
명암 대비가 높다는 것은 영상의 밝기 값이 넓은 범위에 분포되어 있음을 의미합니다.
히스토그램 평활화의 4단계
- 입력 영상의 히스토그램 생성
- 명암값 j의 빈도수 hist[j]를 계산
- 누적 히스토그램 생성
- 누적 히스토그램 sum[i]를 계산
- $ sum[i] = \sum_{j=0}^{i} hist[j] $
| j | hist[j] | 누적합 |
|---|---|---|
| 10 | 8 | 8 |
| 50 | 1 | 9 (8+1) |
| 60 | 10 | 19 (9+10) |
| 70 | 6 | 25 (19+6) |
| i | hist[i] | sum[i] |
…
가장 최종적으로 나오는 우측 하단 값 → sum[i]
- 누적 히스토그램 정규화
- 단계 2에서 구한 sum[i]를 0~255로 정규화
- $ n[i] = sum[i] \times \frac{1}{N} \times 255 $
- $N$: 전체 픽셀 수
- 입력 영상에서 픽셀 값 i를 정규화된 값 n[i]로 대체하여 결과 영상 생성
명암대비 스트레칭(Contrast Stretching)
명암대비 스트레칭은 영상의 명암 대비를 향상시키기 위한 방법입니다. 영상의 밝기 값 범위를 확장하여 전체적인 명암 대비를 높이는 방법입니다.
명암대비 스트레칭은 다음과 같은 식으로 표현됩니다.
- min: 영상의 최소 밝기 값
- max: 영상의 최대 밝기 값
- P: 픽셀 값
히스토그램 평활화는 픽셀 값의 분포를 조정하여 전체적인 명암 대비를 개선하는 데 중점을 두지만,
명암대비 스트레칭은 이미지에서 특정 명암 영역을 넓게 펼쳐서 명암 대비를 강조하는 데 중점을 둡니다.
이진화(Thresholding)
이진화는 영상을 흑백 영상으로 변환하는 방법입니다. 이진화는 영상의 각 화소를 흰색(255) 또는 검은색(0)으로 변환하는 방법입니다.
이진화는 주로 잡음 제거, 영상의 분석을 위해 사용됩니다.
이진화는 다음과 같은 식으로 표현됩니다.
- T: 임계값
- P: 픽셀 값
영상 사이의 픽셀 기반 처리
2개 또는 그 이상의 영상을 픽셀 기반 처리하여 새로운 영상을 생성하는 방법입니다.
- 덧셈 연산, 뺄셈 연산, AND / OR 연산, 평균 연산 등이 있습니다.
여기서는 덧셈 연산과 뺄셈 연산만 다루겠습니다.
덧셈 연산
두 개의 이전 영상에 덧셈 연산을 수행하여 새로운 영상을 생성하는 방법입니다. 일반적으로 다음과 같은 혼합 함수를 사용하여 두 영상을 더합니다.
- $ P_{out} = \alpha \times P_{in1} + \beta \times P_{in2} $
- $\alpha, \beta$: 가중치. 상수값 조정 가능
뺄셈 연산
보안 시스템, 영상 분석 등에서 사용되는 연산입니다.
- $ value = |P_{in1} - P_{in2}| $
- if $ value \geq T $, $ value = 255 $
else, $ value = 0 $- underflow 주의