샘플링(Sampling)이란?
연속 신호(Continuos, Analog)에서 이산 신호(Discrete, Digital)로 바꾸는 것.
- 연속 신호는 f(t)로 나타내며, t는 시간이다.
- 이산 신호는 f(n)으로 나타내며, n은 샘플의 순서를 나타낸다.
연속-시간 퓨리에 변환 (Continuous-Time Fourier Transform, CTFT)
- 연속 신호를 입력받아 퓨리에 변환을 통해 주파수 신호로 변환한다.
전제 : x(t)는 모든 구간에서 수렴한다, x(t)는 time-magnitude 함수고, X(f)는 frequency-magnitude 함수다.
CTFT의 적용
앨리어싱 효과 (Aliasing Effect)
- 연속 신호 x(t)를 T주기로 샘플링한 이산 신호 함수는 'X[n] = x(nT)'이다.
- 이산 신호 함수를 Impulse Train으로 변환하고, CTFT를 사용한다.
여기서, x(t)에 대해 CTFT를 수행하면, 대역폭 B에 대해 t=0에서 +-B구간 외에서 값이 0인 삼각형 그래프를 얻는다.
Xs(t)에 대해 CTFT를 수행하면, 샘플링 주파수 fs주기로 샘플링된 신호를 얻을 수 있다.
이 때, 2B보다 큰 주파수가 샘플링되면, 주변 주파수와 간섭하여 앨리어싱 효과가 발생하게 된다.
보간(Interpolation)
fs 주기로 샘플링된 이산 신호 X[n]을 통해 원래의 연속 신호 x(t)를 재구성하려는 경우, 보간을 이용할 수 있다.
- sinc Interpolation
이산 신호 X[n]에 sinc 함수를 Convolution하여 연속 신호 x(t)를 만드는 방법이다.
이 때, 합성곱을 진행할 함수는 sinc(pi * fs * (t - n*Ts) 이고, fs * Ts = 1이다.
4번 중첩한 Cubic B-Spline이 영상에서 최고 성능을 보여준다고 알려져있다.
※ 1번 중첩 : Rectangular Function
2번 중첩 : Triangular Function
3번 중첩 : Quadratic B-Spline
이산-시간 퓨리에 변환 (Discrete-Time Fourier Transform, DTFT)
- 이산 신호를 입력받아 퓨리에 변환을 통해 주파수 신호로 변환한다.
전제: x[n]의 합이 수렴한다.
CTFT와 크게 다르지 않음.
연속-공간 퓨리에 변환 (Continuous-Space Fourier Transform, CSFT)
- 2차원 연속 신호를 입력 받아 퓨리에 변환을 통해 2차원 주파수로 변환한다.
전제: |f(x,y)| 모든 공간을 적분했을 때, 그 값이 수렴한다.
2차원 샘플링 ( Sampling )
Impulse Train을 2차원으로 구성하여 샘플링한다.
- 샘플링 구조
: Impulse Train들이 사각형 모양으로 생기는 사각형 타일링 ( Rectangular Tesselation )
: Impulse Train들이 삼각형 모양으로 생기는 삼각형 타일링 ( Triangular Tesslation, 비주류 )
앨리어싱 방지 ( Reduce Aliasing )
앨리어싱이 일어나는 이유는 결국, Bandwidth가 높은 신호가 있어서 간섭이 일어나는 것이다.
즉, 원본 이미지에서 2B 이상이 될 수 있는 High Frequency를 모두 날리고 샘플링하면 앨리어싱은 일어나지 않는다.
이러한 전처리 작업을 Pre-Filter라고 한다.
Pre-Filter를 거친 이미지는 문제가 될 수 있는 고주파부분이 모두 사라져, 샘플링 결과에 앨리어싱이 일어나지 않는다.
(단, 고주파부분을 복구할 수는 없다.)
2차원 보간 ( Interpolation, Reconstruction )
- dv * du 사이즈의 직사각형 모양을 이용해 보간한다. ( Orthogonal Sampling, 직교 샘플링 )
마름모 모양의 경우(삼각형) Hexagonal Sampling라고 한다.
- 1차원에서와 같이 h_LPF을 중첩하여 보간한다.
※ 1번 중첩 : Nearest Neighbor Interpolation
2번 중첩 : Bilinear Interpolation
3번 중첩 : Biquadratic Interpolation
4번 중첩 : Bi-cubic Interpolation
픽셀의 이웃 픽셀 ( Neighbors of a Pixel p )
수평, 수직으로 이웃하는 픽셀을 N4(p)라고 한다. // 4-Neighbors of p
대각선으로 이웃하는 픽셀을 ND(p)라고 한다. // Diagonal Neighbors of p
N4(p) + ND(p)를 N8(p)라고 한다. // 8-Neighbors of p
인접(Adjacency)
- 4-adjacency : 픽셀 q가 N4(p)에 있어야 한다.
- 8-adjacency : 픽셀 q가 N8(p)에 있어야 한다.
- m-adjacency : 픽셀 q가 N4(p)에 있거나, ND(p)에 있으면서, 서로가 N4 관계는 아니여야 한다.
또한, 내부에 순환이 존재하면 안된다.
이미지 내, 어떤 두 개의 좌표 (x0, y0)과 (x1, y1)이 서로 인접하다면, 두 픽셀이 Connectivity를 가진다고 한다.
또한, 이러한 집합을 Connected Component라고 하고,
이런 컴포넌트들을 찾는 것을 Connected Component Analysis(CCA) 라고 한다.
픽셀 간 거리 ( Distance of Pixels )
- Euclidean Distance : sqrt ( (x-s)^2 + (y-t)^2 ) // 직각삼각형 공식
- D4 Distance ( = City-block ) : |x-s| + |y-t| // 가로길이 + 세로길이
- D8 Distance ( = Chessboard ) : max(|x-s|, |y-t|) // 가로, 세로길이 중 최대 값
'4-1공부 > DIP' 카테고리의 다른 글
[중간고사] 6장. 영상 개선 (0) | 2023.04.13 |
---|---|
[중간고사] 5장 - 이미지 변환 (0) | 2023.03.31 |
[중간고사] 4장 - 양자화 (Quantization) (0) | 2023.03.31 |
[중간고사] 2장 - 광도와 색채 (0) | 2023.03.30 |
[중간고사] 1장 - 인지 (0) | 2023.03.30 |