지금까지 다루었던 이미지 프로세싱 주제는 한 픽셀에 관한 것이었다. 명도 조절, 대비, 흑백 변환, 이미지 합성 등의 기법은 특정한 좌표의 픽셀 하나하나에 대한 처리였고, 결과는 주변 픽셀의 영향을 받지 않았다. 하지만 많은 기법들은 서로 인접한 픽셀끼리의 관계를 이용하여 이미지를 처리하게 된다. 이처럼 입력 픽셀과 그 주변 픽셀 값을 고려하여 출력 픽셀의 값을 결정하는 처리를 영역 기반 처리라고 한다. 픽셀 기반 처리와는 다르게 매우 다양하고 복잡한 처리가 이루어질 수 있다. 포토샵에서도 두 방법을 분리해서 다루고 있다. 픽셀 기반 처리는 Image→Adjustment 메뉴에서 처리하고, 영역 기반 처리는 Filter 메뉴에서 다루게 된다.
이 때 사용되는 대표적인 방법이 바로 회선(Convolution) 기법이다. 회선 기법은 입력 영상의 각 픽셀에 이웃한 픽셀(Neighborhood)들을 가중평균(Weighted average)하는 것으로 이루어진다. 입력값 I22를 처리하는 중이고, 그 주변 픽셀들은 다음과 같다고 하자.
I11 |
I12 |
I13 |
I21 |
I22 |
I23 |
I31 |
I32 |
I33 |
이러한 입력값에 대한 회선 마스크는 아래와 같이 생겼다.
M11 |
M12 |
M13 |
M21 |
M22 |
M23 |
M31 |
M32 |
M33 |
여기서 9개의 값의 합은 1이 되어야 한다. 그 이유는 이미지 합성에서 두 비율의 합이 1이 되어야 하는 것과 비슷하다. 출력 픽셀 값은 다음과 같이 주어지게 된다.
앞서 소개된 예는 3x3 사이즈의 회선 마스크를 이용한 경우이다. 일반적으로 회선 마스크는 입력 픽셀 주위로 대칭적이어야 하므로 3x3, 5x5, 7x7 등의 홀수 크기를 가지게 된다.
영역 기반 처리의 대표적인 것으로 영상을 흐리게 하거나 선명하게 하거나, 경계선을 검출하거나 잡음을 제거하는 것 등이 있는데, 이들 모두가 서로 다른 마스크 값을 이용해서 회선 기법을 적용하는 것으로 이루어진다.
회선 기법을 적용할 때 이미지의 경계에서 문제가 발생하게 된다. 모서리나 귀퉁이의 픽셀에서는 더 이상 인접한 픽셀이 5개나 3개밖에 존재하지 않기 때문이다. 이 때는 범위를 벗어난 부분을 모두 0으로 가정하고 회선 기법을 수행할 수도 있고, 범위 안에 들어오는 픽셀들에 대해서만 회선 마스크의 값대로 가중평균을 수행할 수도 있다. 테두리 픽셀들에 대해서는 회선을 수행하지 않고 출력 픽셀과 입력 픽셀을 같게 해 버리는 방법도 있다.
컬러 이미지를 처리할 때는 각각의 R, G, B 성분에 회선 마스크를 적용하는 방법과 색상/명도/채도로 구분하여 명도에만 회선 마스크를 적용하는 방법이 있다. 여기서는 각각의 R, G, B 성분에 적용하는 방법을 이용하도록 하겠다.
[목차] 이미지프로세싱 - 시작
[이전] 픽셀 기반 처리 - (3) 이미지 합성하기
[다음] 영역 기반 처리 - (2) 영상 흐리게 하기