본문 바로가기

Image Processing

영역 기반 처리 - (2) 영상 흐리게 하기 영상을 흐리게 하는 것(Blurring)은 간단하게 주변 픽셀과의 평균을 구하는 것으로 가능하다. 흐리게 하는 정도에 따라 1/9으로 채워진 3x3 마스크, 1/25로 채워진 5x5 마스크, 1/49로 채워진 7x7마스크 등을 사용할 수 있다. 이 방법을 Box Blur라고 하며, 포토샵의 Filter->Blur->Box Blur를 이용하면 이와 같은 기능을 구현할 수 있다. 반면 포토샵의 Filter->Blur->Blur 필터는 아래의 회선 마스크를 사용한다. 0 1/8 0 1/8 1/2 1/8 0 1/8 0 보다 부드러운 흐림 효과를 내기 위해서는 Gaussian Blur가 사용된다. Gaussian Blur는 정규분포를 이용한 회선 마스크를 적용하여 공간적으로 대칭적인 형태의 흐림 효과를 낼 수 있.. 더보기
영역 기반 처리 - (1) 회선(Convolution) 기법 지금까지 다루었던 이미지 프로세싱 주제는 한 픽셀에 관한 것이었다. 명도 조절, 대비, 흑백 변환, 이미지 합성 등의 기법은 특정한 좌표의 픽셀 하나하나에 대한 처리였고, 결과는 주변 픽셀의 영향을 받지 않았다. 하지만 많은 기법들은 서로 인접한 픽셀끼리의 관계를 이용하여 이미지를 처리하게 된다. 이처럼 입력 픽셀과 그 주변 픽셀 값을 고려하여 출력 픽셀의 값을 결정하는 처리를 영역 기반 처리라고 한다. 픽셀 기반 처리와는 다르게 매우 다양하고 복잡한 처리가 이루어질 수 있다. 포토샵에서도 두 방법을 분리해서 다루고 있다. 픽셀 기반 처리는 Image→Adjustment 메뉴에서 처리하고, 영역 기반 처리는 Filter 메뉴에서 다루게 된다. 이 때 사용되는 대표적인 방법이 바로 회선(Convolutio.. 더보기
픽셀 기반 처리 - (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") 기능을 이용하지 않고 직접 이.. 더보기
픽셀 기반 처리 - (1) 밝기, 명암대비 조절 밝기 조절은 매우 간단하다. 픽셀에 일정한 값을 더하거나 빼는 것으로 밝기 조절이 가능하다. (그림 11) 고양이 사진 이 사진은 이 컨텐츠에서 계속 사용할 고양이 사진이다. 어떤 여자 연예인 사진을 쓸까 한참 고민하다가 결국 정하지 못해 고양이 사진을 쓰기로 했다. 앞서 다룬 eval함수를 이용하여 각 픽셀값에 64를 각각 더하거나 뺀 뒤 저장해 보자. 아래와 같은 이미지를 얻을 수 있다. eval함수는 기특하게도 결과값이 255보다 크거나 0보다 작아져서 범위를 벗어나도 255나 0으로 처리를 해주기 때문에 그런 경우에 대해 별도로 처리할 필요가 없다. Image.eval(im, lambda x:x+64).save("brightcat.bmp")와 같은 방법으로 im을 밝게 한 이미지를 파일로 저장할 .. 더보기