Multimedia Programming 08: Point Processing4 Departments of Digital Contents Sang Il Park
Outline Review Point Processing4 Histogram Equalization Image Halftoning
Review: Image Histogram 히스토그램: 같은 값(밝기)의 점의 개수를 세는 것 image histogram http://www.accusoft.com/resourcecenter/tutorials/dip/VQ/lesson1c.htm
Review: Cumulative Histogram 히스토그램: 해당되는 밝기의 점의 개수 누적 분포: 해당되는 밝기보다 같거나 어두운 점의 개수 image histogram Cumulative histogram http://www.accusoft.com/resourcecenter/tutorials/dip/VQ/lesson1c.htm
Review: Histogram Equalization 히스토그램 평활화: 그림의 밝기 분포를 변화시켜 그 분포를 균일하게 만드는 것 Before After
Review: 히스토그램 평활화 과정 각각의 칼라 채널에 대해 (R, G, B) 1. 히스토그램 계산 2. 누적 분포 계산 3. 왼쪽 값의 범위를 0~255로 변환 4. 누적 분포를 변환함수로 사용 255 192 128 64
Image Halftoning/dithering Point Processing 4 Image Halftoning/dithering
Image Halftoning (이미지 하프토닝) 한정된 색상만으로 그림을 효과적으로 표현하는 것 언제 사용하는 가? 인쇄물 (신문, 잡지, 책), 흑백프린터 예전 흑백 모니터 시절 그림의 개성적인 표현 점묘화 팝아트 Pen-and-Ink Illustration
흑백인쇄물 흑백의 잉크만으로 명암을 표현 1873년 최초의 사진 인쇄물
칼라인쇄물 4색 CMYK(시안, 마젠타, 옐로우, 키(블랙))만으로 표현
점묘화 사람의 눈과 지각의 특성을 이용하여 점들이 모여 색을 이룬다는 데 착안한 그림법 신인상주의 대표적 화가: 조르주피에르 쇠라 (Georges-Pierre Seurat) “퍼레이드” 그림의 일부분 그랑드 자트 섬의 일요일 오후, 1884년-1886년, 시카고 미술관
Pop art Roy Lichtenstein (1923~1997) Andy Warhol (1928~1987)
Halftoning 한정된 색: 흑/백 효과적으로: 원본과 최대한 비슷하게 한정된 색만을 사용하여 원본을 최대한 효과적으로 표현 수업시간에는: 한정된 색: 흑/백 효과적으로: 원본과 최대한 비슷하게
Halftoning 가장 기본적인 세가지 방법: Thresholding (경계값법) Patterning (패턴법) Dithering (디더링법)
Thresholding (경계값법) 각 점마다 밝기를 읽어와 특정값(경계값) 미만/이상으로 나누어 각각 처리 f yes g = 255 no
Thresholding 사용 가능 색이 여러 개라면: yes f no yes no yes no g=0 g=85 g=170
Thresholding 다른 표현법: 각 점마다 그 점의 색과 가장 가까운 색으로 바꾸어줌 g = 0 d1<d2 f f - g1 = d1 f - g2 = d2 g = 255 d2<d1
Thresholding 사용 가능 색이 여러 개라면? 각 점마다 그 점의 색과 가장 가까운 색으로 바꾸어줌 g = g1 min=d1 f - g1 = d1 g = g2 min=d2 f - g2 = d2 f f - g3 = d3 g = g3 min=d3 f - g4 = d4 g = g4 min=d4
Thresholding 장점: 구현이 쉽다 단점: 사용 가능색이 흑/백 만 있으면 원래 그림의 정보를 많이 잃어 버린다
Patterning (패턴법) 밝기에 따른 특정한 무늬를 골라서 대입하는 것 기본 아이디어: 기본 면적에 흑색의 비율이 많으면 어두워 보임 기본 면적에 백색의 비율이 많으면 밝아 보임 밝기 단계에 해당하는 패턴을 정한다
Patterning (패턴법) 5단계 밝기에 대응하는 패턴법: 한 점을 2*2=4개의 점으로 표현하고, 밝기로부터 점의 패턴을 결정한다. f
Patterning (패턴법) 원본 (Size(w,h)) 이미지로부터 같은 크기의 patterning 이미지 얻는 방법: 이미지를 블러링한다 (3*3 mean filter) 한 점씩 건너 띄며 원본으로부터 색을 얻는다 밝기가 가장 비슷한 2*2 패턴을 찾는다 한 점을 표현하는 데 점 4개가 필요 해상도가 절반으로 감소
Patterning (패턴법) 10단계 밝기에 대응하는 패턴법: 한 점을 3*3=9개의 점으로 표현하고, 점의 패턴을 결정한다. f
Patterning (패턴법) 장점: 패턴법의 단점: 적은 수의 색만으로 명암을 표현할 수 있다 점의 분포가 규칙적이다 밝기의 경계면이 뚜렷하다 해상도를 잃어버린다.
? Dithering (디더링법) 점을 불규칙하게 찍되 최대한 원본이미지와 비슷하게 만드는 법 dithering original thresholding patterning
Dithering (디더링법) 기본적으로는 Thresholding과 같다. 단, 점을 찍은 뒤, 점의 색의 차이를 원본 주변에 반영 시켜준다. f - g = d thresholding d f g f f d f f f 원본 출력 원본
Dithering (디더링법) f 위치에 따른 에러 반영 비율: (Floyd-Steinberg 디더링법) 7 d 16 3 5
Pen & Ink Drawing 흑/백 + 곡선으로 그림을 표현 http://webspace.ringling.edu/~anovak/west.htm http://emptyeasel.com/wp-content/uploads/2007/08/huntmemorialnycbymelissab.tubbs.jpg
Pen & Ink Drawing 명암의 표현법 - 해칭 (hatching) 곡선의 밀도는 물체의 명암 을 표현 곡선의 방향은 물체의 모양 을 표현
컴퓨터가 만들어 내는 pen-and-ink 이미지
Programming Assignment #2 프린터가 좋지 않던 시절엔… 그림을 문자로 표시했다 Pixelation
Programming Assignment #2 그림을 입력 받아 이를 문자들로 표현하는 프로그램을 만들라
Programming Assignment #2
Programming Assignment #2 제출: 소스코드 제출: 10월 5일(일요일) 저녁 11시59분까지 이메일로 제출: sipark@sejong.ac.kr 이메일의 제목: [멀티미디어1(2)반] 학번-이름 실행 파일(*.cpp/*.h)은 하나일 경우는 그냥 제출, 이미지를 포함, 여러 개일 경우는 압축(zip) 후 제출 압축파일 이름: 학번-이름.zip 소스 코드 내에 주석을 충실히 달 것 보고서 제출: 10월 6일(월요일) 수업시간 전까지
Program Assignment #3 Hint: 문자의 출력과 관련된 함수: cvInitFont cvPutText