더북(TheBook)

7.1.2 엠보싱 필터링

filter2D() 함수를 사용하여 영상에 엠보싱(embossing) 필터링을 적용하는 예제 프로그램을 만들어 보겠습니다. 엠보싱이란 직물이나 종이, 금속판 등에 올록볼록한 형태로 만든 객체의 윤곽 또는 무늬를 뜻하며, 엠보싱 필터는 입력 영상을 엠보싱 느낌이 나도록 변환하는 필터입니다. 보통 입력 영상에서 픽셀 값 변화가 적은 평탄한 영역은 회색으로 설정하고, 객체의 경계 부분은 좀 더 밝거나 어둡게 설정하면 엠보싱 느낌이 납니다.

간단한 형태의 엠보싱 필터 마스크를 그림 7-4에 나타냈습니다. 그림 7-4의 필터 마스크는 대각선 방향으로 +1 또는 -1의 값이 지정되어 있는 3×3 행렬입니다. 이 필터 마스크를 사용하여 필터링을 수행하면 대각선 방향으로 픽셀 값이 급격하게 변하는 부분에서 결과 영상 픽셀 값이 0보다 훨씬 크거나 또는 0보다 훨씬 작은 값을 가지게 됩니다. 입력 영상에서 픽셀 값이 크게 바뀌지 않는 평탄한 영역에서는 결과 영상의 픽셀 값이 0에 가까운 값을 가지게 됩니다. 이렇게 구한 결과 영상을 그대로 화면에 나타내면 음수 값은 모두 포화 연산에 의해 0이 되어 버리기 때문에 입체감이 크게 줄어들게 됩니다. 그래서 엠보싱 필터를 구현할 때에는 결과 영상에 128을 더하는 것이 보기에 좋습니다.

▲ 그림 7-4 엠보싱 필터 마스크

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.