본문 바로가기

영상처리

기하학적 처리 - (4) 대칭 여기까지의 진도를 잘 따라온 여러분이라면 이미지를 좌우, 또는 상하로 뒤집는 연산은 쉽게 생각할 수 있을 것이다. 여기서는 대칭변환을 위한 PIL함수만 소개하도록 한다. import Image cat=Image.open("cat.bmp") cat.transpose(Image.FLIP_LEFT_RIGHT).save("flipcat1.bmp") cat.transpose(Image.FLIP_TOP_BOTTOM).save("flipcat2.bmp") [목차] 이미지프로세싱 - 시작 [이전] 기하학적 처리 - (3) 회전 [다음] 주파수 영역에서의 처리 - (1) 들어가며 더보기
기하학적 처리 - (3) 회전 이미지 회전도 일련의 좌표변환을 통해 이루어진다. 다만 좌표변환에 삼각함수가 이용되므로 이에 관련한 기본적인 내용을 알고 있어야 한다. 좌표평면에서 점 를 반시계방향으로 각도 θ만큼 회전한 좌표는 이다. 알기 쉽게 그림으로 그려 보았다. 가장 오른쪽의 점 를 반시계방향으로 θ만큼 회전하면 위쪽의 점이 된다. 이때 만들어지는 각 선분들의 길이를 색깔별로 정리했다. (그림 34) 회전 좌표변환 이 식을 적용하여 이미지를 처리하면 역방향 사상에 의해 원래 그림이 시계방향으로 회전된 결과를 얻게 된다. 이미지 확대에서와 똑 같은 방법을 사용하되 원래 이미지에서의 좌표를 정하는 방법만 위에서처럼 하면 된다. 다만 삼각함수의 계산까지 해야 한다니 그러지 않아도 느렸던 게 더 느려질 것 같다. 시간이 남으면 각자 구.. 더보기
기하학적 처리 - (2) 축소 축소를 위한 기본적인 개념은 확대의 경우와 같다. 다만 축소의 경우에는 원래 이미지에서 적절한 데이터를 간추려내는 것이므로, 원래 이미지에는 포함되어 있지 않던 새로운 데이터를 계산하지 않아도 확대에서처럼 픽셀이 커져서 눈으로 보인다든지 하는 일은 없다. 사진의 경우 nearest neighbor method를 사용해도 큰 무리가 없이 축소가 가능하다. Magnify함수에 1보다 작은 배율을 주는 방법도 있다. 다만 글자나 도면처럼 얇은 선을 포함하는 그림의 경우 문제가 생긴다. 아래 그림을 nearest neighbor method를 이용해서 축소해보자. (그림 30) 얇은 선들로 이루어진 이미지의 예 (그림 31) nearest neighbor 방식으로 그림 30을 축소한 결과 bilinear int.. 더보기
기하학적 처리 - (1) 확대 이미지를 확대하는 가장 간단한 방법은 확대하고자 하는 배율만큼 픽셀을 복제하는 것이다. 예를 들어 두 배씩 확대하는 경우에는 아래처럼 픽셀을 각 방향으로 두 배씩 복사하면 된다. 이 방법은 그래픽 편집 프로그램에서 픽셀 단위로 세밀한 작업을 할 때 유용하게 사용된다. Windows의 그림판에서 돋보기 메뉴를 이용하여 그림을 확대했을 때 이와 같은 방식으로 그림이 확대되어 보이게 된다. (그림 28) 픽셀 복제 방법으로 5배 확대한 고양이 사진 정수가 아닌 배율에 대해서도 이미지를 확대할 수 있게 하기 위해, 역방향 사상의 개념이 사용된다. 역방향 사상은 결과 이미지의 특정 좌표가 입력 이미지의 어떤 좌표를 바탕으로 해야하는지를 역으로 생각하는 방법이다. 영상을 가로 세로 방향으로 5배씩 확대하는 경우 결.. 더보기
이미지프로세싱 - 시작 이 컨텐츠는 2007년 봄부터 홈페이지 http://talent.kaist.ac.kr/ 에 연재되고 있는 학습컨텐츠입니다. 최근 디지털 미디어의 급속한 확산으로 각광받고 있는 디지털 영상처리라는 분야를 중고등학생 수준에서 접근하고 이해·응용 할 수 있도록, 컨텐츠를 알기 쉽고 자세하게 구성하였습니다. 기존의 이미지 프로세싱 저서들이 이론에만 집중하여 중고등학생들이 배우기에 힘들었던 점도 실습으로 보완하였으며, Python Imaging Library를 이용하여 학생들이 직접 디지털 영상처리함수를 코딩하고 화면에서 확인할 수 있도록 하여 기존의 실습 위주의 저서의 최대 단점이었던 어려운 윈도우 프로그래밍을 익혀야 한다는 점도 보완하였습니다. 실습을 위한 프로그램은 아래에서 다운받을 수 있습니다. Pytho.. 더보기