본 블로그에서 가우시안 필터와 평균 필터 사용법을 전부 다루었다.
그러면서 사용하는 목적이 다르다고 했었고,
분명 둘 사이에 시간차이가 있다고 했었다.
오늘은 그 차이를 확인해보는 시간을 가져보도록 하겠다.
[평균 필터 포스트 보러가기]
[가우시안 필터 포스트 보러가기]
대결 방법
대결 방법은 간단하다
Visual studio 2019 버전 이용,
Release 모드를 사용하고, 같은 고해상도 이미지를 각각의 방법으로 blur 처리를 한다.
그리고 그 과정에서 소요된 시간을 측정 하고,
신뢰도를 높이기 위해서 사진 하나당 10번의 반복 시험을 한다.
사진은 고해상도 흑백 이미지로해서 3장을 사용한다.
(그래야 이미지 처리 시간을 확실하게 볼 수 있다.)
Stage 1.
사용할 사진은 아이유 사진이다.
해상도 : 5120 x 2880
( OpenCV에서 흑백 사진으로 불러와서 동일하게 처리한다.)
결과는 위와 같이 나왔다.
압도적인 차이로 Gaussian Filter 가 average Filter를 이겨버렸다...
다른 Stage 로 가볼 필요가 없어질 정도인거 같다...
Stage 2.
사용할 사진은 자동차 사진이다.
이번에는 마스크 크기를 49 x 49 으로 해보도록 하겠다.
해상도 8192x5461
( OpenCV에서 흑백 사진으로 불러와서 동일하게 처리한다. )
결과는 위와 같이 나왔다.
정말 차이가 엄청나게 크게 나는 것을 알 수 있다.
가우시안 필터가 평균 필터보다 약 7배 정도 빠른 것을 알 수 있다.
mask 크기가 작을 때에는 약 15배 정도 까지 빠른 것은 stage 1 에서 확인할 수 있었다.
그리고 사진을 자세히 보면
blur 처리된 이미지 두 장 모두, 자글자글한 노이즈가 다 잡힌 것을 확인할 수 있다.
그리고 gaussian filter 는 자동차가 더 선명하게 보이고,
average filter 는 전체가 다 흐려졌음을 알 수 있다.
gaussian filter는 중앙 부에 가중치를 더 주기 때문에 비교적 object(대상물)가 선명하게 남음을 확인할 수 있었다.
stage 3 까지 갈 필요도 없겠지만, 그래도 해보도록 한다.
Stage 3.
사용할 사진은 자연 사진이다.
이번에는 마스크 크기를 101 x 101 으로 해보도록 하겠다.
해상도 : 8192 x 3839
( OpenCV에서 흑백 사진으로 불러와서 동일하게 처리한다. )
결과는 위와 같이 나왔다.
신기하게도 mask 크기를 증가시켰음에도 불구하고 average filter의 소요시간의 변화가
stage 2 에서의 결과보다 더 줄어들었다.
반대로 gaussian 필터는 기존보다 엄청나게 처리시간이 증가해버렸다.
결론.
필자가 직접 경험한 것을 토대로 결론을 내려보자면
Gaussian Filter 는 처리속도가 매우 빠르지만, mask 크기를 증가시키면 처리속도 저하가 생기는 문제가 있다.
Average Filter 는 mask 크기가 어떻게 되더라도 처리 속도가 비슷했다. 하지만 처리속도가 비교적 느리다.
세세하게 blur 처리가 필요한 것이 아니라면 처리속도가 빠른 Gaussian Filter 를 사용하는 것이 합리적이다.
특히, 비디오 영상에서의 연산처리를 한다면 Gaussian Filter를 불가피하게 사용해야 할 것으로 보인다.
대신 좀 더 Gaussian Filter를 제대로 사용하려면 상황에 알맞게 시그마(편차) 값을 조절할 필요가 있어보인다.
도움이 되었거나, 문제가 있는 경우 댓글로 알려주세요~!
감사의 댓글은 작성자에게 큰 힘이 됩니다 ^^
'코딩 > OpenCV' 카테고리의 다른 글
[C++ opencv] 이중 임계값 처리, double thresholding, inRange() (0) | 2020.07.01 |
---|---|
[C++ opencv] Thresholding 임계값 처리로 binary 이미지 만들기 (1) | 2020.06.30 |
[C++ opencv] 가우시안 필터로 노이즈 제거하기 gaussian filter, gaussian blur() (4) | 2020.06.30 |
[C++ opencv] 평균필터 적용하여 노이즈 제거하기 average filter, filter2d() (2) | 2020.06.26 |
[C++ opencv] 효율적인 Histogram 이용한 이미지 밝기 조절 (4) | 2020.06.25 |
댓글