-
디지털은 이미지를 2차원 배열에 저장한다.
picture element(pixel) : 작은 사각형을 의미하는 것이 아니라, 그 안에 있는 샘플을 의미한다.
Image Resolution 해상도
Intensity resolution 빛의 세기(밝기 값)
- bitmap과 비슷하다. 깊이 따라 빛의 밝기가 달라진다.
Spatial resolution (공간 해상도)
- Width x Height
Temporal resolution (시간 해상도)
- 모니터의 'Hz' (FPS를 의미한다.)
Source of Error
실제 값(Real value)과 샘플 값(Sample value,=digital)의 차이로 인해서 항상 Error가 난다.
Intensity quantization(양자화) 빛의 세기
- 빛의 세기가 부족할 형상
Spatial aliasing 공간 해상도 계단 현상
- 사이즈를 덜 쪼개서 발생한다.
Temporal aliasing (시간 해상도) 깜박이는 현상
- 움직이는 것이 끊겨서 보이는 것
Quantization 양자화
밝기 단계에 문제가 발생할 때 생긴다.
실제 값은 실수 지만, 표현 할 때는 정수형으로 보여준다. 왼쪽처럼 실제 값은 자연스러운 흰색과 검은색이 보이지만, 표현할 때는 계단식으로 보인다.
Reducing Effects of Quantization
사람의 눈은 세부적으로 디테일 하게 보는 게 아니라 모든 것을 통합해서 평균적으로 보는 경향이 있다.
Halftoning
신문 인쇄 기술이다.연속적인 톤 이미지를 한가지 색 또는 4가지 색을 사용해서 표현할 수 있다.
Dithering
배경, 채우기 및 음영을 만드는 방법론 같은 것이다.
Dithering -> Methods(방법론) , Halfton -> result(결과물)
Halftoning
I : real value
P : sample value
얼룩의 크기를 조절해서 표현 한다.
Halftoning patterns
픽셀 클러스터를 사용하여 강도 표현
빛의 세기 : 밝기
0 ~ 1
Dithering
제한된 색을 이용하여 음영이나 색을 나타내느 것
Halftoning - Error
Moire Patterns
연속적으로 같은 패턴을 사용하면서, 발생하는 부분이다.
왼쪽에 물결이 생긴다.
Signal Processing
Signal
Real World : 연속적 신호
Digital World : 이산 신호
Image
공간영역에서 다루게 된다.
빛의 세기 밝기
연속적인 신호를 선택하는 과정 : Sampling(선택된 수칙 값)
Reconstruction(재구성) 샘플로 부터 연속적인 신호로 재구성한다.
Aliasing
샘플링이 적게 쓸때, 혹은 재구성 할 때 잘 못할 때 생기는 모든 현상을 Aliasing이라고 한다.
- Spatial aliasing 공간 에어리징
- Temporal aliasing 시간 에어리징
Nyquist rate and aliasing
샘플링을 하는 데, 얼마나 샘플링을 적게 하는 가?
샘플링이 높으면, 메모리 UP, 시간 UP
샘플링이 낮으면, aliasing 현상이 나온다.
2* max frequency을 넘어 야지, aliasing이 고쳐진다.
주파수(frequency): 초당 사이클의 횟수(Hz)
Spatial Aliasing
픽셀에 있지 않아서, 표현되지 못하는 문제가 발생한다.
계단현상(Jaggies)
아무리 작게, 픽셀을 표현한다고 해도, 계단현상을 없애는 것은 불가능하다.
Temporal Aliasing
Spinning Backward5초에 5바퀴를 도는 휠이 있다고 가정하면,CW(시계방향)CCW(반시계방향)
어떤 장면을 포착하는 가에 따라서, 바퀴가 오른쪽, 왼쪽으로 돌거나, 도는 방향을 알 수 없게 되기도 한다.
갑자기, 툭 하고 그림이 나오는 것을 Temporal 현상이다.
깜빡임 현상이다.
시간적이 현상이다.
Anti-Aliasing
Aliasing 현상을 제거하는 방법
고주파 필터 : 저주파만 통과, 고주파 거른다.
저주파 필터 : 저주파 고르고, 고주파를 통과
위쪽은 끝의 부분을 흐리게 만들어서, 계단부분을 안보이게 만든 것이다.
Pixel Operations
해당 픽셀만 건드리는 것
Grayscale(회색음영)
Negative Image(색상반전)
기존의 RGB값에 255를 빼주면 된다.
Adjusting Brightness(밝기 조절)
(R, G, B) -> (R, G , B) * scale
스케일이 커지면, 255를 넘을 수 도 있다. 0~255가 되게 범위로 짤라준다.
Adjusting Contrast(색상 대비)
Luminance(밝기) : L은 평균값전체 픽셀에 대한 밝기의 값이다.
R -> L + (R-L)*scale
G -> L + (G-L)*scale
B -> L + (B-L)*scale
Adjusting Saturation (채도)
RGB는 자체에 채도가 없고, HSV(Hue Saturation Value)에는 채도가 있다.
- RGB -> HSV로 변환한다.
- 각 픽셀에 대한 S(Saturation)값을 구한다.
- HSV -> RGB로 다시 변환한다.
Filtering
Convolution
- Spatial domain
- 픽셀 주위에 있는 값들을 가중치의 합으로 표현된다.
- 이 패턴을 "filter'라고 한다.
- 픽셀에다가, 가중치 값을 곱한다.
Adjust Blurriness
전체 필터를 가중치를 주어서, 뿌옇게 만들 수 있다.
Edge Detection
기존 값에 필터의 값을 곱한다.
Clamping : 0 ~ 255 범위에 있게 만든다.
Sharpening
Embossing
- 전체 이미지를 회색음영을 만든다.
- 회색음영에다가 필터를 넣는다.
- 최종 픽셀 값에다가 128 값을 더해준다. Or 0.5를 더해준다.
Warping
이미지를 움직일 때 사용한다.
Warping = mapping + resampling
Mapping
픽셀의 위치를 지정한다.
Resampling
픽셀의 색상을 조정한다.
Mapping Two options
Forward mapping Reverse mapping Forward mapping : 원본에서 목적지로 가는 방법
Reverse mapping : 목적지에서 원본으로 가는 방법
모든 소스에 있는 u, v에 있는 원본에서 어디로 갔는가?
Scale by factor
x = factor * u
y = factor * v
Rotate by θ degrees
x = ucosθ - vsinθ
y = usinθ + vcosθ
Shear in X by factor
x = u + factor * v
y = v
Shear in Y by factor
x = u
y = v + factor * u
Forwarding mapping
for (int u =0; u < umax; u++) { for (int v = 0; v < vmax; v++) { float x = fx (u, v); float y = fy (u, v); dst (x, y) = src(u, v) ; color 값 } }
Forwarding mapping의 문제
픽셀이 없으면, 구멍이 난다.
픽셀이 여러 개 있어서 중복된다.
Reverse mapping
Forward mapping의 단점을 보안하기 위해 나왔다.
Reverse Mapping
- 소스를 다시 샘플링을 해야한다.
- 하지만 훨신 간단하다.
Resampling
원본으로 돌아갈 때, 정수형으로 떨어지지 않는다.
- Point sampling
- Triangle filter
- Gaussain filter
Point sampling
가까운 픽셀에서 값을 가져온다.
- int iu = trunc(u + 0.5) 반올림 함수
- int iv = trunc(v + 0.5) 반올림 함수
- dst(x, y) = src(iu, iv) color 값을 근처에서 가져온다.
Filtering
Triangle Filtering
Linear Interpolation (선형보간법)
이중선형 보간법
이중선형 보간법 푸는 법
1)Point Sampling
- (0.7 + 0.5, 0.2 + 0.5) -> (1, 0) -> 250밝기 이다.
2) Bilinear Interpolation
- A = 100 * 0.3 + 200 * 0.7 = 170
- B = 50 * 0.3 + 250 * 0.7 = 190
- P = 170 * 0.2 + 190 * 0.8 = 186
Image Compositing
- 배경을 만들고
- 파란색 배경을 가진 전경을 만든다.
- 오른쪽 배경에 파란색 배경이 아닌 전경을 넣어준다.
Alpha Channel
a = 0 완전 투영
a = 1 완전 불투영
0 < a < 1 부분만 투영한다.
만약, a = 0.3이면,
a = 1 전경
a = 0 배경
0 < a < 1 부분
Alpha channel convention
A = (rA , gA, bA)
aAA = (rA*aA , gA*aA, bA*aA)
Cross-Dissolving (=Blend)
blend(i, j) = (1-t) src(i, j) + t dst(i, j) (0 <= t <= 1)
Image Morphing
모양을 변경하고, 색상을 변한다.
Feature Based Morphing
마이클 젝슨의 Black Or White에서 사람들이 모습이 변화는 부분이 있습니다. 특징을 이용해서 Morphing을 하는 부분입니다.
'그래픽스' 카테고리의 다른 글
3D Object (0) 2021.11.01 3D 렌더링 (0) 2021.10.25 Modeling Transformation (0) 2021.10.20 Color (0) 2021.09.27 Graphics System (0) 2021.09.13