Download presentation
Presentation is loading. Please wait.
1
Multimedia Programming 05: Point Processing
Departments of Digital Contents Sang Il Park
2
Outline Review Point Processing 1
3
Review OpenCV 익숙해 지기 선 면
4
빈 이미지 생성하기 IplImage* cvCreateImage( CvSize size, int depth, int channels ); 만들 빈 이미지의 크기, 허용 색상수를 설정하여 생성 컬러수: color depth: IPL_DEPTH_8U (각 채널당 8bit) channels: 1,2,3,4 (1=grey, 3=color) Example) IplImage * img; img = cvCreateImage(cvSize(200,100), 8, 3); cvSet(image, CvScalar) 이미지를 주어진 색으로 가득 칠한다 Example) cvSet(img, CV_RGB(255,255,255));
5
Coding Practice: Line Drawing
Make your own function for Horizontal line drawing: 예) void DrawHLine (IplImage * img, int y, int st, int ed, CvScalar color) image
6
Coding Practice: Line Drawing2
Make your own function for Vertical line drawing: 예) void DrawVLine (IplImage * img, int x, int st, int ed, CvScalar color) image
7
Coding Practice: Line Drawing 3
시작점과 끝점을 잇는 라인?: 예) void DrawLine (IplImage * img, int x1, int y1, int x2, int y2, CvScalar color)
8
Coding Practice: Line Drawing 3
시작점과 끝점을 잇는 라인?: 예) void DrawLine (IplImage * img, int x1, int y1, int x2, int y2, CvScalar color)
9
Do more! Design a function that draws a rectangle
(x,y) w Design a function that draws a rectangle 예) void DrawRectangle (IplImage * img, int x, int y, int w, int h, CvScalar color) Don’t forget to make sure a pixel is inside the image 0 <= max_x <= img->width 0 <= max_y <= img->height If done, try to draw 50 random boxes with random colors! h
10
For those who want more OpenCV Wiki-pages: For OpenCV Reference Manual: Supplied documentation: OpenCV/docs/index.htm, faq.htm A Korean Community:
11
Image Processing 1 Point processing Alexei Efros
12
이미지를 함수처럼? Render with scanalyze???? Alexei Efros
13
Image Processing image processing 이란 한 이미지 f 를 새로운 이미지 g 로 만드는 과정
이미지의 영역을 변경하는 것 What kinds of operations can each perform? Use photoshop to make something grayscale Alexei Efros
14
Image Processing image filtering: 이미지의 색상 값을 변경 g(x) = h(f(x))
image warping: 이미지의 영역을 변경 g(x) = f(h(x)) f x f x h Alexei Efros
15
Image Processing image filtering: 이미지의 색상 값을 변경 g(x) = h(f(x))
image warping: 이미지의 영역을 변경 g(x) = f(h(x)) f g h Alexei Efros
16
Point Processing 가장 단순한 Image Filtering: g = t(f) 무엇을 할 수 있을까?
이미지의 점의 위치 x,y 에 상관없이 일괄적인 변환 적용 g = t(f) 무엇을 할 수 있을까? 변환 함수t 는 어떤종류가 있을까? Important: 모든 이미지 점 하나하나가 독립적으로 처리됨 – 점들의 상관관계 정보를 전혀 사용하지 않음 Alexei Efros
17
Point Processing g f t 이미지 각 Pixel의 RGB 밝기정보 값의 범위 : 0~255
포인트 프로세싱의 정의: g = t ( f ) g f t t 새로운 밝기값(칼라값): g 한 점의 밝기값(칼라값): f
18
Point Processing 변형함수 t 는 함수이다: g = t ( f ) 변형함수의 모양
이미지의 칼라값 f 를 새로운 이미지의 칼라값g 로 대응 변형함수의 모양 g f 255 올바르지 않은 변형함수의 예: g f 255 t
19
Basic Point Processing
output input g = Af + B A = 1 B = 0 picture from
20
Basic Point Processing
output input g = Af + B A = 1 B > 0 Brightness +
21
Basic Point Processing
output input g = Af + B A = 1 B < 0 Brightness –
22
Basic Point Processing
input output g = Af + B A > 1 B = 0 Contrast + (brightness +)
23
Basic Point Processing
output input g = Af + B A > 1 B < 0 Contrast + (brightness -) Contrast +
24
Basic Point Processing
output input g = Af + B A < 1 B > 0 Contrast –
25
Basic Point Processing
output input g = Af + B A < 1 B > 0+++ Contrast – (brightness +)
26
코딩 연습 이미지를 하나 열고 밝기와 대비 값을 키보드를 누름으로써 조정한다 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
27
Hint for the exercise 키보드 입력 받는 법:
int cvWaitKey( int delay=0 ) waits for a pressed key. After waiting for the given delay, it proceeds. Zero delay means waiting forever until user input. Delay in milliseconds.
28
More functions?
29
Power-law transformations
30
Image Enhancement
31
Example: Gamma Correction
32
Contrast Stretching
33
Programming Assignment #1
How to compare R,G,B channels? No right answer Sum of Squared Differences (SSD):
Similar presentations