Multimedia Programming 06: Point Processing 2 Departments of Digital Contents Sang Il Park
Image Processing 1 Point processing Alexei Efros
Point Processing g f t 이미지 각 Pixel의 RGB 밝기정보 값의 범위 : 0~255 포인트 프로세싱의 정의: g = t ( f ) g f t t 새로운 밝기값(칼라값): g 한 점의 밝기값(칼라값): f
Point Processing 변형함수 t 는 함수이다: g = t ( f ) 변형함수의 모양 이미지의 칼라값 f 를 새로운 이미지의 칼라값g 로 대응 변형함수의 모양 g f 255 올바르지 않은 변형함수의 예: g f 255 t
코딩 연습 이미지를 하나 열고 밝기와 대비 값을 키보드를 누름으로써 조정한다 example) 1 : brightness up(+10) 2: brightness down(-10) 3 : contrast up(+0.1) 4: contrast down(-0.1) g = Af + B g = input color value f = output color value A = contrast value (초기값 = 1) B = brightness value (초기값 = 0) output input
More functions?
Power-law transformations
Image Enhancement
Example: Gamma Correction http://www.cs.cmu.edu/~efros/java/gamma/gamma.html
Contrast Stretching
Neighborhood Processing (Filtering) Image Processing 1-2 Neighborhood Processing (Filtering) Alexei Efros
Salvador Dali, “Gala Contemplating the Mediterranean Sea, which at 30 meters becomes the portrait of Abraham Lincoln”, 1976 Render with scanalyze????
Filtering noise (노이즈 필터링) 이미지의 노이즈를 어떻게 하면 줄일 수 있을까? 90 100 130 110 120 90 80 ? Replace each pixel with the average of a kxk window around it 원본 이미지 손상된 이미지
Mean filtering (평균 필터) 노이즈가 있는 위치의 밝기 값의 오차를 주변 값과 비교하여 줄여보자 90 노이즈가 있는 위치의 밝기 값의 오차를 주변 값과 비교하여 줄여보자 Replace each pixel with the average of a kxk window around it
Mean filtering (평균 필터) 노이즈가 있는 위치의 밝기 값의 오차를 주변 값과 비교하여 줄여보자 90 노이즈가 있는 위치의 밝기 값의 오차를 주변 값과 비교하여 줄여보자 주변에 차이값을 나누어 준다 Replace each pixel with the average of a kxk window around it
Mean filtering (평균 필터) 즉, 빨간 테두리 안의 9개의 값들의 경향을 따르도록 중심 값을 변형해 본다. 90 즉, 빨간 테두리 안의 9개의 값들의 경향을 따르도록 중심 값을 변형해 본다. 테두리 안의 값의 평균을 구하여 이를 중심 값으로 대체 10 20 30 40 60 90 50 80 Replace each pixel with the average of a kxk window around it What happens if we use a larger filter window? 90 10
Mean filtering (평균 필터) 이를 수식으로 표현해 보자. 90 이를 수식으로 표현해 보자. 평균값을 구하는 범위는 한 pixel을 중심으로 상하좌우대각선으로 한 칸씩 늘린다. 총 3x3=9 개의 pixel 값을 살핌 (이를 윈도우라고 한다) 10 20 30 40 60 90 50 80 (x-1,y-1) (x,y-1) (x+1,y-1) (x-1,y) (x,y) (x+1,y) (x-1,y+1) (x,y+1) (x+1,y+1) (x,y)
Mean filtering (평균 필터) 이를 수식으로 표현해 보자. 90 이를 수식으로 표현해 보자. 평균값을 구하는 범위는 한 pixel을 중심으로 상하좌우대각선으로 한 칸씩 늘린다. 총 3x3=9 개의 pixel 값을 살핌 10 20 30 40 60 90 50 80
Mean filtering (평균 필터) 90 이를 간단하게 써보면: 10 20 30 40 60 90 50 80
좀더 일반적으로… 평균값을 구하는 윈도우의 크기가 (2k+1)x(2k+1)이라면:
Cross-correlation filtering (상호-상관 필터) 평균은 모든 점들마다 1/(2k+1)2의 값을 곱하는 것. 만약 점들마다 서로 다른 값을 곱한다면? 위와 같은 식을 상호상관 연산이라고 하며 다음과 같이 줄여 쓴다. H (각 점의 가중치)를 “filter,” “kernel,” 또는 “mask” 라고 부른다.
Mean kernel (평균 커널) 3x3 평균 필터의 커널은 무엇이 될까? u -1 1 v ones, divide by 9 1 v 90 ones, divide by 9
Mean kernel (평균 커널) 3x3 평균 필터의 커널은 무엇이 될까? u -1 1 v 1/9 1 v 90 1/9 ones, divide by 9
Mean kernel (평균 커널) 3x3 평균 필터의 커널은 무엇이 될까? 90 1 ones, divide by 9
Gaussian Filtering (가우시안 필터) 점이 중심에서 멀어 질수록 가중치를 줄인다면 더 좋은 성질을 얻을 수 있다. 90 1 2 4 ones, divide by 9
Gaussian Filtering (가우시안 필터) 점이 중심에서 멀어 질수록 가중치를 줄인다면 더 좋은 성질을 얻을 수 있다. 90 1 2 4 ones, divide by 9
Gaussian Filtering (가우시안 필터) Gaussian Filtering 이러한 커널은 밸(bell)모양을 한 가우시안 함수와 모양이 비슷하다. 1 2 4
Mean vs. Gaussian filtering