공간영역은 압축률이 2~3배지만 많은 영역을 쉽게 처리할 수 있는 장점이 있다.
반면 주파수 영역은 압축률이 100배까지 가능하다.
Point Process에서 출력 값은 오직 (x,y)에서의 value만 중요하다. 좌표는 노상관
r : gray level of f(x, y)
s : gray level of g(x, y)
point processing의 다양한 기법을 아래에 소개.
1. Arithmetic Operations
사칙연산임
•
Addition, subtraction : 더하고 빼는 연산은 밝기를 조정
◦
g(x, y) = f(x, y) + c
•
Multiplication, division : 곱셈 나눗셈은 대비를 조정
◦
g(x, y) = a * f(x, y)
•
문제점
◦
+ : value 최대값을 넘어갈 수 있음.
◦
- : value 최소값보다 낮아질 수 있음.
◦
x : 역시 최대값 넘길 수 있음
▪
→ 해결책은 Clamping 0-255범위로 조정해주기
2. Logical Operation
이건 clamping이 필요 없다.
if f(x,y) = c then g(x,y)=0
else g(x,y) = f(x,y)
•
generate cursor
•
extracts certain value in img
•
Pseudo-color img processing : 흑백 이미지를 특정 컬러 이미지로 변환시 (CAM?)
3. Look-up table : LUT
•
1-D array : 입출력 값 mapping
index - 현재 픽셀 값
output - 새로운 픽셀 값
•
SW, HW 다 편하게 적용 가능
•
Graphical LUT
◦
x축 : index (input)
◦
y축 : LUT output
◦
transfer func. : LUT programming
•
ex : gamma correction
Gamma correction
CRT 기기 (브라운관..)의 출력이 비선형적인 특성을 가져서 이를 보정하기 위해 적용.
이런 특징으로는 위의 이미지에서 어두운 부분보다 밝은 부분이 더 넓어 보인다는 특징이 있음.
감마 보정을 해주지 않으면 대비가 더 높아짐.
◦
response curve : power func
◦
low voltage region : darker than intended
◦
gamma correction : the process used to correct this response
◦
intensity-to-voltage with V(input voltage), L(luminance)
◦
inverse réponse curve는 카메라 시스템에 적용된다.
◦
Gamma > 1 : Darker img
CRT 특징
◦
Gamma = 1 : normal img
final display img
◦
Gamma < 1 : Brighter img
의도적으로 카메라의 특성을 변환
◦
감마 보정을 잘못했을 경우 의도치 않은 색의 변화가 일어날 수 있다.
◦
CRT, PDP, LCD 등 각 장치는 각기 다른 감마 값을 가지고 있음.
4. Histogram
도수분포를 나타내는 막대 그래프
이미지 처리에선 intensity의 빈도를 나타내는 용도로 사용 가능.
•
X축 : possible intensity value
•
Y축 : 해당 intensity 값의 빈도수
•
ex : 64x64, 256 level img
•
Histogram normalization
히스토그램에서는 이미지의 대비 정보를 얻을 수도 있다.
•
Dark img → histogram이 왼쪽으로 치우쳐이씅ㅁ
•
Bright img → 오른쪽으로 치우쳐있음
•
Narrow histogram → contrast가 낮음
•
Wide histogram → contrast가 높음
•
+ 연산 → H 오른쪽으로 이동
•
- 연산 → H 왼쪽으로 이동
•
x 연산 → wider H
•
/ 연산 → narrower H
color img는 RGB 따로 histogram 생성 가능
CDF : Cumulative Distribution Function : 누적분포함수
확률밀도함수를 적분한 값.
p(w) ≥ 0 이기 때문에 T(r)그래프는 감소하지 않는다. 0이면 x축평행
0 ≤ T(r) ≤ 1 , 0≤r≤1
T(1) = 1
일대일 함수가 아니여서 역함수 생성X (가능한 경우도 있음)
•
Dark img → 위로 볼록한 CDF
이는 img를 밝게 해주는 LUT로 사용 가능.
•
Bright img → 아래로 볼록한 CDF
img를 어둡게 해주는 LUT로 사용 가능
Histogram Equalization : HE
Original histogram을 redistribution하는 것
이를 통해 대비를 극대화 시킬 수 있다.
1.
원본 HIstogram 계산
2.
Normalize sum of histogram : CDF 계산 후 이미지 크기로 나눠주셈.
3.
Transform using CDF : 2번 함수에 넣고 255 곱해주기
intensity 값이 크면 wider하게 퍼지고 작으면 narrow하게 퍼진다.
•
HE 특징
◦
자동으로 대비를 늘려주는 기법
◦
최대 대비까지 늘려줄 수 있음
◦
어두운 부분의 fine detail에서도 잘 작동된다.
◦
밝기를 바꿀 수는 없고 그 분포를 바꾸는 것이다.
◦
항상 좋은 것은 아니다. 퀄리티가 떨어질 수도 있음.
안좋아지는 것의 예시
Histogram Specification : HS
•
이미지를 특정 histogram을 따르는 이미지로 변환
•
대비를 조정해서 이미지를 더 밝거나 어둡게 할 수 있다.
•
Input : image, desired histogram
•
HE + Inverse HE
•
Histogram Matching이라고도 부른다.
1.
Histogram 을 계산
2.
Normalized CDF를 구한다.
3.
원하는 normalized CDF인 G(z) 구해서 를 구한다.
4.
2,3번에서 구한 값을 계산한다. →
Contrast Stretching
모든 범위에 값이 있게 histogram을 늘려주는 것.
•
Basic :
0-255 전범위로 늘릴 수 있다.
•
End in Search
얼마나 변할 것인지 명시를 해줘야함.
low = converted to full black
high = converted to full white
•
Piecewise-Linear Stretching
몇 가지의 선형 함수를 통해 변환.
◦
Clamping :
◦
Thresholding :
a가 크면 어두운 부분이 밝아지고 b가 크면 중간 부분이 밝아지고 r가 크면 전체적으로 어두워지는데 밝은 부분은 더 밝아짐
•
Intensity Transform
LUT로 쉽게 실행 가능
예시로는 y=x, y = 255-x, 감마보정, stretching
◦
Compression
▪
대비를 줄인다
▪
분산 범위를 좁힌다
◦
Posterizing
▪
gray level 값을 줄인다 (0-255 → 100-200)
▪
이미지 크기를 줄인다
◦
thresholding
▪
gray level 값을 두개로 줄인다
▪
binary img
◦
bounded thresholding
제한된 범위에서만 thresholding진행.
해당 범위 말고는 y=x
◦
iso-intensity contouring
특정 intensity 값을 흰검으로 나눈다
특정 intensity level을 찾고 싶을 떄 사용
◦
solarizing
밝은 부분을 negative transform한다