111118 ch 4_basic image manipulation_web

Preview:

DESCRIPTION

 

Citation preview

The Art and Science of Digital Compositing

김정근

Chapter 4

Basic Image Manipulation

3

Agenda

Terminology

Color Manipulations

Spatial Filters

Geometric Transformations

4

Terminology

디지털 표현에 대한 이해의 기초

이미지를 수정하는 방법몇몇 예제는 이미지의 픽셀이

영향을 받는 방법을 그래프로 표현

5

Terminology

원본 이미지의 픽셀의 값

Opera

tors 가

적용

된 후

의 픽

셀 값

Input Pixel Value = Out Pixel Value

6

Terminology

Brightness Operator

“Brightness 값이 2.0 이 되었다” O = I X 2.0

7

Terminology

Graph of Brightness 2.0

O = I X 2.0

Color Manipulations

9

RGB Multiply

RGB Multiply Operator

10

RGB Multiply

Graph of the (0.1, 1.25, 1) RGB multiplica-tion

11

RGB Multiply

이전 챕터에서 배운 것과 같이 전체 픽셀을 대신해 채널의 그룹으로 이미지를 수정

Red 의 양이 감소하고 Green 의 양이 증가했다고 말할 수 있어야 함

각 채널에 어떠한 값을 적용하면 결과는 전반적인 밝기 또는 대비를 수정

12

Add

Add Operator

13

Add

Graph of the Add 0.2 Operation

O = I + 0.2

14

Add

Multiply 연산과 달리 검정색이 회색이 됨

0 값은 0 으로 유지되지 않음

결과적으로 “ Black” 이 손실됨

15

Gamma Correction

Gamma Correction Operator

16

Gamma Correction

Graph of a Gamma 1.7 operation

17

Gamma Correction

Gamma Correction 은 지수함수를 사용

O = I1/Gamma

O = 01/Gamma = 0

1 은 몇 번 곱해도 1

0 또는 1 의 값을 가진 픽셀은 변경되지 않음

중간 범위의 값이 가장 많은 영향을 받음

고정 영역의 컬러의 표현을 작업할때 데이터 손실이나 피해가 적음

– Add 나 Multiply 와 같이 Black 이 손상되고 순수한 White 가 잘려나가는 등의 문제는 없음예외상황 : X0 = 1 지수의 성질에 의해서 ,

1/Gamma = 0 일때 I1/Gamma = 1 이 된다1/Gamma = 0 가 성립하기 위한 Gamma 값이

존재하지 않으므로 이 예외가 성립하지 않는다

18

Invert

Invert Operator

19

Invert

Graph of an Invert operation

O = (1 - I)

20

Invert

Mask 나 Mattes 로 사용되는 이미지를 수정할 때 사용

21

Simple Contrast

Simple Contrast Operator

0 = (I - 0.33) X 3

22

Simple Contrast

Graph of a simple Contrast operation

23

Smoother Contrast

Smoother Contrast Operator

24

Smoother Contrast

Graph of a smoother Contrast operation

25

Contrast

Contrast 를 증가하면 어두운 부분은 어두워지고 밝은 부분은 더 밝게 됨

감마와 같은 곡선이 적용된 Smoother Contrast 가 좀더 좋은 시스템

0.5 사이를 두고 위는 밝아지고 아래는 어두워짐 : Midpoint 를 수정할 수 있음

26

Channel Swapping

Channel Swapping Operator

27

Channel Swapping

Red 채널과 Blue 채널을 스왑 했을 때의 결과

일반적으로 색상 보정에는 사용되지 않음

Chapter 6 에 나와있는 특정 색상 차이 방법의 기초로 사용

알파 채널과 같은 보조채널에서 데이터를 이동할 때 유용

28

HSV Manipulations

HSV Manipulations Operator

Saturation Reduced by 50%

29

HSV Manipulations

HSV Manipulations Operator

Rotated by 180 through the color spectrum

30

HSV Manipulations

RGB 값을 조정하여 이미지의 채도에 영향을 미치는 것은 쉽지 않음

HSV Manipulations Operator 는 예제와 같은 수정을 쉽게 할수 있음

– 첫번째 이미지 : Saturation 을 50% 감소

– 두번째 이미지 : 밝기와 채도관계를 유지하면서 모든 색상의 보색으로 이동

( 컬러 스펙트럼을 통해 180 도 회전 )

31

Look-up Table Manipulations

Graph of the LUT used to generate Test image

32

Look-up Table Manipulations

Look-up Table Manipulations Operator

33

Look-up Table Manipulations

Look-up Table Manipulations Operator

34

Look-up Table Manipulations

A graph used to show image modifications based on hue versus saturation

Blue 는 De-saturate

Green 은 Su-persaturate

35

Look-up Table Manipulations

Simulation LUT– Cineon 파일이나 DPX 파일과 같이 특정한 감마 속성을 가진 영상에서 그 속성에 맞는 시청 환경을 제공하지

못하는 경우 가상으로 색 정보를 보편적인 시청 환경에 시뮬레이션하는 방식

Calibration LUT– 모니터 캘리브레이션이나 색관리 시스템– 색관리 시스템의 ICC 프로파일에 포함된 색채좌표가 “캘리브레이션 LUT”

Encoding LUT– 이미지를 특정 형식의 색공간으로 변환하여 저장하고자 할 때 적용되는 LUT

3D LUT– Nuke,Shake 등 영상편집 툴에서 지원– 언리얼 등 게임에서 톤 보정용도로 사용

36

Look-up Table Manipulations

Color Correction using 3D lookup table - OpenGL_GLSL

37

시연

RGB MultiplyAdd

Gamma CorrectionInvert

ContrastChannel SwappingHSV Manipulations

Look-up Table Manipulations

38

Expression Language

합성 시스템에서의 수학적 표현의 정의

특정 내장 키워드와 미리 정의 된 함수로 간주

LUT Manipulations 의 채널 값을 수정하는데도 사용 ,

– 사용자 정의 곡선을 만들어 색상 변경이나 알고리즘 , 방정식과 같은 종류를 포함함

39

Expression Language

R = R x 0. 75G = G X 0.75B = B x 0.75

“ 이미지가 25% 어둡게 되었다”

40

Expression Language

R = (R + G + B)/3G = (R + G + B)/3B = (R + G + B)/3

“ 세 채널을 함께 평균한 컬러소스로부터 모노크롬 이미지를 생성하였다 .”

41

Expression Language

R = (R x 0.309) + (G x 0.609) + (B x 0.082)

G = (R x 0.309) + (G x 0.609) + (B x 0.082)

B = (R x 0.309) + (G x 0.609) + (B x 0.082)

“ 모노크롬 이미지를 생성하는데 더 적절한 수식”– 사람의 눈이 다르게 빨강 녹색 및 파란 색의 밝기를 고려해야만 한다 .

42

Expression Language

R = RG = R > G? (R + G)/2 : G

B = B

“ 픽셀의 빨간색 값이 녹색 값보다 큰 경우 , 다음 빨간색과 녹색 값 합계의 절반과 같은 픽셀의 ( 새로운 ) 녹색 값으로 설정한다 .

그렇지 않으면 픽셀의 그린 값은 변경된다 .”

43

Expression Language

Expression Language Operator

R = RG = R > G? (R + G)/2 : G

B = B

Color Manipulations“ 하나의 Pixel Input 값”

Spatial Filters“ 주변의 Pixel Input 값”

46

Convolves

Algorithim Visualization_ Spatial Convo.avilution

47

Convolves

.6 .6 .9 .9 .9

.6 .6 .9 .9 .9

.6 .6 .9 .9 .9

.6 .6 .6 .6 .9

.6 .6 .6 .6 .9

0 .9 0

0 1 .3

0 0 .9

-1 -1 -1

-1 8 -1

-1 -1 -1

kernel( 커널 )

픽셀 위에 레이어처럼 놓을 Mask 로 생각

48

Convolves

1 2 3 4 5(X8) 6 7 8 9 합계 결과

1 -0.6 -0.6 -0.9 -0.6 4.8 -0.9 -0.6 -0.6 -0.9 -0.9 0

2 -0.6 -0.6 -0.9 -0.6 4.8 -0.9 -0.6 -0.6 -0.6 -0.6 0

3 -0.6 -0.6 -0.9 -0.6 4.8 -0.6 -0.6 -0.6 -0.6 -0.3 0

4 -0.6 -0.9 -0.9 -0.6 7.2 -0.9 -0.6 -0.9 -0.9 0.9 0.9

5 -0.6 -0.9 -0.9 -0.6 7.2 -0.9 -0.6 -0.6 -0.9 1.2 1

6 -0.6 -0.9 -0.9 -0.6 4.8 -0.9 -0.6 -0.6 -0.6 -0.9 0

7 -0.9 -0.9 -0.9 -0.9 7.2 -0.9 -0.9 -0.9 -0.9 0 0

8 -0.9 -0.9 -0.9 -0.9 7.2 -0.9 -0.6 -0.9 -0.9 0.3 0.3

9 -0.9 -0.9 -0.9 -0.6 7.2 -0.9 -0.6 -0.6 -0.9 0.9 0.9

49

Convolves

Contrast 대비가 높은 이미지

50

Convolves

Edge-detection Convolve 를 실행한 후의 결과 이미지

51

Convolves

샘플 이미지 ( 왼쪽 첫번째 ) 와 다양한 edge-detection 알고리즘이 적용된 이미지

52

시연

Convolve

53

Blurring

54

Blurring

픽셀의 근방으로부터 칼라 값들을 현재 픽셀과 부분적으로 평균을 냄

시각적으로 결과 이미지는 선명함이 감소

191919

191919

191919

3x3 convolve Filter

55

Blurring

56

Blurring

원본 이미지 Blurring 한 이미지 Out-Focus 이미지

57

Blurring

Bokeh

– 이미지를 캡쳐하는데 사용된 특수렌즈에 좌우되는 Defocus 에 대한 성질

– Light Bloom 의 육각형 모양이 이들 특성 중 하나

Dynamic Range

– 원래 장면에서 라이트는 필름에 캡쳐된 것보다 상당히 밝다 ( 더 많은 에너지를 담고 있음 )

– Out-of-focus 하기 위해 렌즈를 바꾸는 것은 “에너지”를 밝은 라이트들 로부터 바깥쪽으로 분산시켜줌

– 그 주변이 좀더 어둡더라도 라이트의 밝기가 폭넓은 영역에 걸쳐 필름이 Overexpose 되도록 하기에 충분한 밝기

– 인위적으로 어두운 픽셀을 분산한 디지털 이미지는 픽셀 주변의 더 어두운 픽셀들과 평균값을 낸 결과가 회색이 될것

– 이것이 High-Dynamic-Range 이미지가 리얼월드를 정확하게 표현하는 유용한 예제

(Blurring)

(Outfocus)

(Outfocus)

58

Sharpen

이미지에 색상이 변화하는 영역 ( 그라데이션 ) 사이에서 콘트라스트를 증가시키면 사람의

눈은 이것을 결과적으로 선명함이 증가했다고 인식

−1−1−1−1 −1−1−1−1

3x3 convolve Filter

59

Sharpen

60

Sharpen

61

Sharpen

Pixel 이 변하는 시점에서 증가된 Contrast 를 주목 !밝은 영역은 더 밝게 어두운 부분은 더 어둡게 변하였음

62

Sharpen

밝기 값을 그래프로 표현한 것

63

Sharpen

sharpening 이 적용된 후의 밝기 값을 그래프화한 것

64

Sharpen

a. 원본

b. 약한 Sharpen

c. 매우강한 Sharpen

Ringing 과 Noise Artifact 은

Oversharpening 때문

손실된 정보는 결코 생성하거나

복구할 수 없다 !!

65

Sharpen

약간 out-of-focus 된 이미지

66

Sharpen

Sharpening

67

Sharpen

적합한 focus 렌즈로 촬영한 원본 장면

68

Sharpen

Sharpening

약간 선명해졌다는 인식은 주지만적합한 Focus 렌즈로 촬영한 이미지와

비교해보면 여전히 덜 선명함

69

Median Filter

Kernel 에서 모든 픽셀의 밝기 별로 순위를 매김

순위의 Median 값 혹은 Center 값과 같은지에 대해 체크하여 픽셀 값을 변경

그 결과는 Median Filter 가 Single Pixel 의 Artifact 를 제거하는데 훌륭한 역할을 함

단 선명함은 다소 감소

Median filtering 은 특정 한계치 내에서만 일반적으로 적용

Median filter example

70

Median Filter

x = [2 80 6 3]

So, the median filtered output signal y will be:y[1] = Median[2 2 80] = 2y[2] = Median[2 80 6] = Median[2 6 80] = 6y[3] = Median[80 6 3] = Median[3 6 80] = 6y[4] = Median[6 3 3] = Median[3 3 6] = 3

i.e. y = [2 6 6 3].

71

Median Filter

y[1] 2 2 80 6 3 3

y[2] 2 2 80 6 3 3

y[3] 2 2 80 6 3 3

y[4] 2 2 80 6 3 3

2 2 80

2 80 6

80 6 3

6 3 3

2 2 80

2 6 80

3 6 80

3 3 6

y = [2 6 6 3]

72

Median Filter

73

Median Filter

한번 더 Median Filter 를 적용하면 노이즈는 더 제거될 것 !

하지만 그림이 덜 선명해짐이미지 전체와 디테일 양쪽 모두 고려

74

시연

Median Filter

Geometric Transformation

76

Geometric Transformation작업 해상도 1200 x 900

소스 이미지 900 x 600

(x, y) location of (0, 0)

77

Panning

X 와 Y 모두 오프셋 할 때 이러한 변환을 Pan 이라고 함

78

Geometric Transformation

최초의 작업상태

79

Geometric Transformation

각 축으로 150 Pixel 이동

80

Panning

X 와 Y 모두 오프셋 할 때 이러한 변환을 Pan 이라고 함

Input 이미지가 700 Pixel 을 넘어갈 때 ?

81

Geometric Transformation

82

Panning

X 와 Y 모두 오프셋 할 때 이러한 변환을 Pan 이라고 함

Input 이미지가 700 Pixel 을 넘어갈 때 ?

– 대부분의 시스템에서 이미지의 나머지는 잘리거나 없어짐

– 이 이미지의 어떠한 추가변환은 잘린 이미지로 수행

– 작업공간에서 벗어났던 영역은 복구할 수 없음

몇가지 시스템은 보다 강력한 방식으로 이 문제를 해결

– Wraps

83

Geometric Transformation

Wraps

84

Image created specifically for seamless wrap-around

85

Wrap-around image panned sideways.

wrap-around 모드는 별 특징 없는 배경을 오랜 시간 계속 이동할 때 종종 사용

86

Rotation

간단한 회전을 제어하는 데 필요한 두 매개 변수는 회전의 양과 ( 보통 각도에서 지정한 ) 와

회전의 중심

회전의 중심을 변경하면 결과에 극적인 영향을 줄 수 있음

87

Origin, (0, 0) 을 중심으로 300 도 회전

88

대략 센터 (빨간화살표 ) 를 중심으로 300 도 회전

89

Scale

합성시스템이 지원한다면 사용자 정의 지점 주변을 스케일 할 수 있음

Flip = X 축을 따라 미러 이미지를 생성 ( 그림자나 반사 )

Flop = Y 축을 따라 미러 이미지를 생성

90

Geometric Transformation작업 해상도 1200 x 900

소스 이미지 900 x 600

(x, y) location of (0, 0)

91

An image scaled by 50% around the origin.

92

Geometric Transformation작업 해상도 1200 x 900

소스 이미지 900 x 600

(x, y) location of (0, 0)

93

Image scaled by 50% around its approximate center

94

Flipped image

95

Image Rotated 180°

96

Flopped image

97

3D Transforms

예제 이미지

98

3D rotation around the x-axis

99

3D Transforms

예제 이미지 : 아래 부분을 축소하고 윗부분을 늘릴때 perspective 효과를 볼수 있음

Corner Pinning

– 임의의 네모퉁이를 재조정 하는 것 EX) 포토샵 : Free Transform

일반적으로 이미지가 다른 비트가 있는 컴퓨터 또는 비디오 모니터의 내용을 대체하는

효과일때 사용

100

101

102

103

Warping

이미지 왜곡의 더 정교한 방법

그리드 메쉬 또는 스플라인 곡선에 의해 제어

104

Warping

105

시연

PanningWraps

RotationScaleFlipFlop

106

시연

3D Transforms / Warping

107

Expression Language

X = X + 30

Y = Y + 50 * sin(X * 0.02)

“ 웨이브있는 물결의 오프셋”

“30 Pixel 만큼 오른쪽으로 이동”

108

Expression Language

109

Filtering Algorithms

“ 이미지를 원본 해상도의 10 분의 1 로 줄이고 싶다”열번째 픽셀만 모두 사용 !(Impulse filter)

110

Filtering Algorithms

더 나은 Algorithms =

New pixel 을 얻기 위해 ,Original image 에서 pixel 들 전체를 살펴보고 ,선별적으로 이 픽셀들의 평균을 찾아낼 것

111

Filtering Algorithms

Impulse filter

– 가장 빠른 방법이며 Dirac Filter, Nearest-Neighbor Filter 로도 불림 속도향상이 제일 중요할 때 사용

Box filter

– Impulse Filter 보다 조금 나은 퀄리티 사이즈를 확대할때 박스 모양이 나타남

Triangle filter

– Resampling 할때 좀더 Area 를 고려하여 이미지를 Resizing 할때 미리보기 목적으로 사용

Mitchell filter

– Sharpness 과 ringing 아티팩트 사이에서 좋은 발란스를 가진 필터 25 픽셀 복구필터이며 큰 해상도로 이미지를 확대할때 가장 좋은 선택

Gaussian filter

– aliasing 혹은 ringing 아티팩트들을 가상으로 제거해주는 대중적인 필터

Sinc filter

– 많은 aliasing 을 만들어내지 않고도 작은 디테일들을 유지시켜주는 아주 훌륭한 필터– 큰 해상도에서 더 작게 이미지를 축소시킬 때 가장 좋은 필터

112

Filtering Algorithms

Gaussian Filter Sinc Filter Impulse Filter

113

Filtering Algorithms

Gaussian Filter

Sinc Filter

Impulse Filter

114

Filtering Algorithms

Gaussian Filter

115

Filtering Algorithms

Sinc Filter

Sharpening Filter

116

Filtering Algorithms

Impulse Filter

117

Filtering Algorithms

특정결과를 얻기 위해 이미지를 Resizing 할때 사용하는 알고리즘이 존재– 프린트하기위해 이미지를 확대할때 약간의 프랙탈 노이즈를 추가하면 디테일이 올라간 것으로 보임

Single Frame 에서 제공되는 것보다 더 많은 정보를 가진 큰 이미지를 만들고자 할때 하나의 단일 이미지에 여러 번 반복 노출 하는 방법도 존재– SD 비디오를 HD 해상도로 resizing

118

Motion Blur

119

Motion Blur

리얼 카메라에서 이미지를 촬영하는 동안 촬영하는 개체는 약간 흐릿하게 표시

리얼한 이미지를 생산하기 위해 이것을 모방할 필요가 있다

120

Motion Blur

간단한 변환을 사용하여 애니메이션된 2D 요소 – 하나의 프레임을 위해 다섯번 움직임을 통한 서브샘플링으로 제작

121

Motion Blur

동일한 Motion blur 변환이지만 20 배의 샘플링을 한 것

122

Motion Blur

Adaptive Sampling– 각 픽셀의 색상차이나 상태등을 고려하여 안티알리아싱을 다르게 적용하여 최적화– 필요할 때만 Sub Frame 계산– Blurry 효과 (glossy, Reflection/Reflacton) 가 없는 경우에 빠름

Area light adaptive samples

123

Motion Blur

Adaptive sampling 을 이용한 Motion blur transformation

124

Motion Blur

Low Quality 로 설정한 Adaptive sampling 을 사용하여 Motion blur transformation

125

Motion Blur

인위적으로 Long Shutter 를 사용한 Motion Blur

126

Motion Blur

Overexposed 밝은 highlights 의 오브젝트들이 있는 장면

127

Motion Blur

Motion blur 를 소개하기 위해 움직이는 카메라로 촬영한 동일한 장면

128

Motion Blur

Motion blur 로 적용했을 때 강렬한 Highlight 가 손실됨을 주목

Q & A

감사합니다

Recommended