본문 바로가기

PIL

주파수 영역에서의 처리 - (5) 2차원에서도 똑같이 해 보자 [ 2차원 DCT ] 이제 여러분은 1차원 배열에 DCT를 적용하는 법을 알아보았다. 이미지에도 DCT를 적용할 것이라고 했는데, 한 가지 문제점에 봉착한다. 이미지는 2차원 배열이기 때문이다. 2차원 배열에 DCT를 적용하려면 어떻게 해야 할까? 1차원에서 정의된 함수를 f(x)라고 나타냈다. 이번엔 2차원이니까 f(x, y)라고 하면 된다. f(x)를 나타내기 위해서는 아래와 같은 함수들을 이용했다. 1 cos x cos 2x cos 3x … 2차원 함수 f(x, y)를 위해선 아래와 같이 확장하면 된다. 1 cos x cos 2x cos 3x … cos y cos x cos y cos 2x cos y cos 3x cos y … cos 2y cos x cos 2y cos 2x cos 2y cos 3x.. 더보기
픽셀 기반 처리 - (3) 이미지 합성하기 픽셀 연산으로 두 이미지를 합성하는 것이 가능하다. 이것을 블렌딩(Blending)이라고 한다. 포토샵으로 뽀샤시한 사진을 만들려고 노력해본 사람이라면 레이어에서 메뉴에 들어가 여러 가지를 조정해 본 기억이 있을 것이다. 포토샵의 메뉴에서는 그 레이어와 아래 레이어가 어떻게 합성될지 설정할 수 있다. (그림 18) 포토샵에서 레이어의 Blending Options 설정으로 들어간 화면 아래 사진은 이미지 프로세싱 컨텐츠의 2부에서 배울 방법을 이용하여 고양이 사진을 흐리게 만든 것이다. 원래의 선명한 고양이 사진과 흐린 고양이 사진을 합성하면 어떤 결과가 될까? (그림 19) 흐리게 만든 고양이 사진 두 사진을 합성하기 위해서는 다음 식대로 픽셀을 조작하면 된다. 결과 이미지의 픽셀값 = 첫 번째 이미지.. 더보기
픽셀 기반 처리 - (2) 흑백 이미지 만들기 앞서 말한 convert("L") 함수를 이용하면 손쉽게 흑백 이미지로 만들 수 있다. 이 함수는 내부적으로 아래와 같은 연산을 통해 R, G, B 세 개의 성분을 한 개의 광도(Luma) 성분으로 합성한다. L = 0.2126 R + 0.7152 G + 0.0722 B 이 계수들은 우리 눈이 느끼는 빨강, 파랑, 초록 삼원색의 밝기의 상대적인 차이를 바탕으로 채택한 값이다. (그림 17)에서 확인할 수 있듯이, 흑백으로 변환한 원색의 초록색(#00FF00)은 원색의 파랑색(#0000FF)보다 훨씬 밝다. 이것은 G에 곱해진 숫자 0.7152가 B에 곱해진 숫자 0.0722보다 훨씬 크기 때문이다. (그림 17) RGB의 3원색을 흑백으로 변환한 결과 convert("L") 기능을 이용하지 않고 직접 이.. 더보기
이미지프로세싱 시작하기 - (4) 파이썬 이미징 라이브러리 PIL의 사용 PIL(Python Imaging Library)은 파이썬을 이용해서 쉽게 이미지 프로세싱을 할 수 있게 주는 라이브러리이다. PIL은 이미지 프로세싱에 관련된 다양한 모듈을 제공하고 있으나 여기서는 이미지 파일 열기나 생성하기, 저장하기 등 가장 기본적인 함수들만 알아보기로 한다. PIL의 핵심이라고 할 수 있는 이미지 프로세싱 기능들은 그것을 직접 구현할 것이기 때문에 미리 다루지 않는 것으로 한다. PIL에 대한 자세한 문서가 필요하면 PIL의 공식 Documentation 사이트(http://www.pythonware.com/library/pil/handbook/)를 이용하면 된다. Image.new(mode, size) -> image Image.new(mode, size, color) -> i.. 더보기
이미지프로세싱 - 시작 이 컨텐츠는 2007년 봄부터 홈페이지 http://talent.kaist.ac.kr/ 에 연재되고 있는 학습컨텐츠입니다. 최근 디지털 미디어의 급속한 확산으로 각광받고 있는 디지털 영상처리라는 분야를 중고등학생 수준에서 접근하고 이해·응용 할 수 있도록, 컨텐츠를 알기 쉽고 자세하게 구성하였습니다. 기존의 이미지 프로세싱 저서들이 이론에만 집중하여 중고등학생들이 배우기에 힘들었던 점도 실습으로 보완하였으며, Python Imaging Library를 이용하여 학생들이 직접 디지털 영상처리함수를 코딩하고 화면에서 확인할 수 있도록 하여 기존의 실습 위주의 저서의 최대 단점이었던 어려운 윈도우 프로그래밍을 익혀야 한다는 점도 보완하였습니다. 실습을 위한 프로그램은 아래에서 다운받을 수 있습니다. Pytho.. 더보기