더북(TheBook)

앞 수식에서 α는 샤프닝 결과 영상의 날카로운 정도를 조절할 수 있는 파라미터입니다. 즉, α에 1.0을 지정하면 날카로운 성분을 그대로 한 번 더하는 셈이고, α에 1보다 작은 값을 지정하면 조금 덜 날카로운 영상을 만들 수 있습니다. 앞 수식에서 g(x, y) 대신 수식을 대입하고 식을 정리하면 다음과 같습니다.

OpenCV는 언샤프 마스크 필터 함수를 따로 제공하지 않습니다. 다만 앞 수식을 그대로 소스 코드 형태로 작성하면 어렵지 않게 샤프닝 결과 영상을 얻을 수 있습니다. 이 수식에서 f(x, y)는 입력 영상에 블러링이 적용된 영상이며, 이때 블러링 영상을 구하기 위해 평균값 필터를 사용해도 되고 가우시안 필터를 사용해도 됩니다. 가우시안 필터로 f(x, y) 영상을 생성할 경우, 가우시안 분포의 표준 편차를 어떻게 지정하느냐가 샤프닝 결과에 영향을 줄 수 있습니다.

언샤프 마스크 필터링을 수행하는 예제 코드를 코드 7-4에 나타냈습니다. 코드 7-4의 unsharp_mask() 함수는 rose.bmp 장미 영상을 다양한 표준 편차 값으로 가우시안 필터를 적용하고, 블러링된 영상을 이용하여 샤프닝 결과 영상을 생성합니다. unsharp_mask() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch07/sharpen 프로젝트에서 확인할 수 있습니다.

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