이미지에는 여러 표현들이 있다.
- Luminance - 실제 빛의 강도
- Brightness - luminance 인식하는 정도
- Hue - spectrum에서 dominant wavelength
- Saturation - white light의 amount, 없으면 100%
- Contrast - 색의 brightness 차이
우리 눈은 실제 luminance value 차이보다 luminance contrast에 민감하다. 그러다 보니 같은 빛이어도 밝기가 다르면 다른 빛으로 인식한다.
밝기는 surroundings에 영향을 많이 받는다. 가령 Mach Band effect가 있다.
경계면에서 색이 더 진한 것처럼 보이는 현상이다.
Image Scaling
Image는 pixel 단위로 구현되고, pixel은 bit로 구성된다. 보통 최소 6 bits image로 구성된다. (4 levels for RGBA) Medical images와 같이 많은 정보가 필요한 경우 12 bits 이미지도 존재한다. ($2^{12}=4096$ greylevels)
충분하지 못한 bits로 이미지를 구성할 경우, 제한된 bit에서 어쨌든 표현해야 하므로 quantization이 발생한다. 당연시 reolution은 loss된다.
Representing Digital Images
$k$ bits Image
- $M$x$N$x$k$ array
- Intensity : $[0,2^{k}-1]$
Continuous looking image는 dynamic range에 의해 결정된다. n개의 grey values($v_0$,,, $v_n$)가 있을 때, 다음과 같이 정해진다.
$$ {v_n \over v_0} $$
Dynamic range가 의미하는 바는 '이미지가 얼마나 넓은 명암을 표현할 수 있는가'이다.
가령 사람은 1%의 밝기 차이를 구분하지 못한다.
- $v_{j} \leq 1.01 v_{j+1}$
Dynamic range가 주어졌을 때, 표현 가능한 gray values의 수는 다음처럼 구할 수 있다.
- $n \geq log_{1.01} {v_n \over v_0}$
가령 dynamic range가 100이면, 표현 가능한 gray values는 463개가 된다.
발견가능한 intensity level의 upper limit은 saturation(max value of signal)이고 lower limit은 noise이다.
Spatial and Intensity resolution
- Spatial resolution : smallest 구별되는 detail을 의미한다.
- pixels per unit distance
- dots per inch (dpi)
- Intensity resolution : smallest 구별되는 intensity 변화를 의미한다.
- 8 bits, 12bits, 16 bits ...
N은 이미지의 크기, k는 bits 수를 의미한다. 각 얼굴, 사람, 군중 이미지에 여러 사이즈에 대해서 k bit간의 동일한 이미지 퀄리티를 나타낸 표이다. 주요 해석은 다음과 같다.
- 이미지의 세부 정보량이 많을수록 k보다 N이 중요하다.
- 이미지(N)가 커질수록 더 적은 k로 충분한 화질을 표현할 수 있다.
Interpolation
이미지 변환이 이루어졌을 때, 주변 pixel을 기반으로 현재 비어있는 pixel value를 추정해 채우는 방식이다.
- Bilinear interpolation
- Bicubic interpolation
Neighborhood
이웃을 결정하는 방법은 또 따로 있따.
서로 연결되면 path라 한다. Path에도 여러 종류가 있다.
- closed path : $(x_0,y_0)=(x_n,y_n)$
- connected in S : S = pixels
- Connected Set : only one connected component
- Adjacent : $R_i U R_j = S$, $R$은 region
- Disjoint : adjacent가 아닌 것들
- Boundary : $R$의 경계
- Foreground : $R_u$
- Backround : $(R_u)^c$
예제는 다음과 같다.
Distance Measures
다음의 성질만 만족하면 거리로 사용할 수 있다.
- Euclidean distance, $D(p,q) = [(x-u)^2+(y-v)^2]^{1/2}$
- $D_4$ distance, $D = |x-u| + |y-v|$
- $D_8$ distance, $D = max(|x-u|, |y-v|)$
Mathematical Tools
Affine matrix
Geometric transformation을 가능하게 해주는 변환행렬을 affine matrix라고 한다. (scaling, translation, rotation, shearing)
이후에 interpolation까지 적절하게 수행한다면, 이미지 퀄리티가 매우 좋아진다. Interpolation하는 방법 중에는 forward mapping과 inverse mapping이 있다.
Forward mapping
[x' y']을 모르다 보니, 값이 겹치거나 없을 수 있다. 겹치는 경우에는 float으로 변환하고 int로 형변환하는 방식을 취하고 없는 경우에는 interpolation을 수행한다. 직관적이다 보니 구현이 쉽다는 장점이 있다.
Inverse mapping
말 그대로 [x' y']을 결정하고 값을 얻는 방식이다. 모든 output에 대해 mapping이 가능하며 forward보다 효과적인 연산을 수행할 수 있다.
Image Registration
Reference image와 input image를 정렬하는 방법이다. Affine matrix가 알려지지 않아 이를 찾는 방법이라고 생각해도 좋다. 주로 tie points 방법이 사용된다.
Vector and Matrix 연산
$$ ab = a^{T}b $$
- Euclidean norm: $||z|| = (z^{T}z)^{1/2}$
- Euclidean distance: $D(z,a) = ||z-a|| = ||(z-a)^{T}(z-a)||^{1/2}$
Linear Transform
이미지에서는 다음과 같다.
Image Transform
이미지의 spatial domain에서 다른 domain으로 변환하면 얻을 수 있는 정보가 존재한다. 다음처럼 도메인을 변경하기도 한다.
F.T.을 사용하면, 이미지의 frequency 영역을 확인할 수 있는데, 가령 이미지에 노이즈(고주파 성분)가 많은 경우, F.T를 통해서 noise 성분을 확인하고 이를 low pass filtering을 통해 지우고 inverse F.T.를 수행하면 깔끔한 이미지를 얻을 수 있다.
Kernel
두 가지 특성을 가지고 있다.
- Separable : $r(x,y,u,v) = r_1(x,u)r_2(y,v)$
- Symmetric : $r_1(x,u) = r_2(y,v) = r(a,b)$
- functionally equal한 경우를 의미한다.
대표적으로 2-D Fourier Transform이 있다.
Separable과 symmetric이면, 다음의 조건을 만족한다.
Image Intensity as Random Variables
Intensity level, $L$에 대해서 $k$ intensity의 pixel 수를 $n_k$라 하면, $p(z_k)$는 다음과 같다.
$$ p(z_k) = {n_k \over MN} $$
당연히도 $\sum^{L-1}_0 p(z_k) = 1$이다. 이때, average, covariance, $n^{th}% moment는 다음과 같다.
가령 covariance는 다음과 같은 효과가 있다.
covariance가 크다는 것은 값들의 간격이 넓은 것을 의미하며, 이는 이미지 상에서 contrast가 높다는 것을 의미하기도 한다.
'Study > Digital Image Processing' 카테고리의 다른 글
[03] Intensity Transformations and Spatial Filtering (0) | 2024.10.14 |
---|---|
[01] Introduction (0) | 2024.10.14 |