안녕하세요. 지난 포스팅의 디지털 영상 처리 - 샤프닝 공간 필터(Sharpening Spatial Filter) : 언샤프 마스킹, 하이부스트 필터링, 비등방성 필터에서 처음에 다루었던 라플라시안 필터에서 다루지 못한 나머지 샤프닝 기법들에 대해서 알아보았습니다. 오늘은 실제로 예제 사진을 통해서 샤프닝 공간 필터를 구현해보는 시간을 가지도록 하겠습니다. 코드는 하단의 깃허브 링크를 참조해주시길 바랍니다.
먼저 지난 포스팅에서 보았던 수치 미분을 그대로 구현한 결과를 보도록 하겠습니다.
데이터는 교재에 나온 그대로 입력을 넣어보았습니다. 그래고 특히 step 지점에서 zero crossing 현상이 발생하고 있는 것을 볼 수 있습니다. 저희는 이러한 개념을 토대로 다차원의 2차 미분인 라플라시안을 활용하는 방법을 적용하였습니다.
일단, 기본적인 원리는 지난 번에 구현한 스무딩 공간 필터와 동일합니다. 다만, 필터의 크기가 항상 $3\times 3$으로 고정되어 있다는 점과 커널 내의 가중치를 합을 하면 0이 나오기 때문에 나누는 과정이 생략됩니다. 이 부분이 이론적으로는 끝이지만 사실 라플라시안 필터를 적용하게 되면 그 결과에 음수가 나오는 경우가 있습니다. 이를 방지하기 위해서 영상 내의 최솟값을 더해주는 과정이 필요합니다. 이 부분만 다르고 나머지는 동일한 결과입니다.
위의 4개의 그림들은 서로 다른 4개의 타입을 이용하여 얻은 샤프닝 결과입니다. 하지만 생각보다 저희가 생각한 결과보다는 그렇게 좋지 않습니다. 이러한 현상이 발생하는 이유는 노이즈 때문에 발생합니다. 신호 데이터를 생각해보면 가우시안 노이즈가 껴있을 때 미분을 취하면 오히려 해석하기 더 어려워지는 것은 당연한 사실입니다. 따라서 여기에는 적절한 노이즈 제거가 필요하겠죠. 노이즈 제거 방법은 지난 포스팅에서의 블러링을 취해주면 됩니다. 하지만 얼마나 많이 블러링을 해주어야 좋은 결과가 나올지는 영상마다 다르기 때문에 적절한 값을 수동으로 찾아주어야합니다.
예를 들어 (c) 타입의 커널의 경우에는 $k = 11$, 즉 윈도우의 크기를 11로 해야 그나마 좋은 샤프닝 결과를 얻을 수 있었습니다. 다음으로 언샤프닝 기법과 하이부스팅 필터링을 보도록 하겠습니다.
과정은 일전에 소개시켜드린 것처럼 일단 입력 영상에 스무딩을 적용합니다. 이때 저는 $31 \times 31$ 크기의 윈도우를 사용하였습니다. 그 다음으로 스무딩 영상과 입력 영상 간의 차이를 구한 후 그 차이를 얼마만큼 더할 건지 $k$ 값을 조절한다고 하였습니다. 이때. $k= 1$이면 언샤프 마스킹, $k > 1$이면 하이부스트 필터링이라고 하였습니다. 저는 위의 그림에서 언샤프 마스킹을 적용하기 위해서 $k = 1$로 설정하였습니다.
하이부스트 필터링에서 $k$ 값이 커질수록 달의 아랫부분, 즉 그림자 부분에서 잘 보이지 않던 부분과 크레이터, 그리고 달의 윤곽선이 훨씬 진해지는 것을 관찰할수 있습니다.
마지막으로 엣지를 추출하는 필터 중 라플라시안도 있었지만 비등방성 필터인 로버츠와 소벨 연산자도 확인해보겠습니다. 참고하실 점은 책에서는 설명되어있지 않지만 저는 임곗값을 도입하여 특정값 이상이면 1, 이하면 0으로 처리하여 이진 마스크 영상을 만들었습니다. 그 결과 아래와 같이 임곗값에 따른 다양한 엣지 영상을 얻을 수 있습니다. 일반적으로 임곗값을 크게 잡았는 데도 불구하고 계속 살아있는 엣지를 강한 엣지, 아니면 약한 엣지라고 언급하기도 합니다. 아래는 로버츠 필터와 소벨 필터를 이용한 결과입니다.
'image processing' 카테고리의 다른 글
디지털 영상 처리 - 주파수 공간 필터링 기초 1 (3) | 2021.03.27 |
---|---|
디지털 영상 처리 - 공간 개선 방법 결합 (0) | 2021.03.24 |
디지털 영상 처리 - 샤프닝 공간 필터(Sharpening Spatial Filter) : 언샤프닝 마스킹, 하이부스팅 필터링, 비등방성 필터 (0) | 2021.03.21 |
디지털 영상 처리 - 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터 (2) | 2021.03.20 |
디지털 영상 처리 - 스무딩 공간 필터 구현 (0) | 2021.03.19 |