Framework/OpenCV

[OpenCV] 라이브러리 별 Resize 성능 차이

깜태 2021. 7. 22. 16:13
728x90

검색을 해보다가, 알게 된 내용으로 각 라이브러리 별로 Resize를 하는데도 차이가 존재한다는 것을 알게 되었다.

 

1. PIL vs OpenCV 간 BICUBIC 차이

Case 2를 보면 같은 이미지를 PIL, OpenCV 방식으로 불러왔는데 완벽히 같지 않다는 내용을 볼 수 있다. 

그리고, 이에 대해 비슷하게 누군가가 실험한 예시이다.

2번째 행에서 왼쪽이 OpenCV, 오른쪽이 PIL을 이용한 예시인데,

3x3 픽셀의 좌측 하단과 우측하단을 보면
OpenCV의 경우 전반적으로 더 밝고, PIL의 경우 더 어둡다.

 

아래는 PIL과 Matlab으로 resize를 진행헀을 때의 차이값으로 생각보다 많은 픽셀값들이 다름을 확인할 수 있다.

 

게다가 매우 중요한 건 Super Resolution같은 세밀함을 다루는 분야에서는
이런 라이브러리의 차이로 인해 성능 차이가 나기도 하고, 엉뚱한 결과가 나올 수도 있다는 점이다.

 

2. OpenCV vs matlab 간 BICUBIC 차이

Bicubic 알고리즘은 보통 인접한 4x4 영역을 기반으로 보간(interpolation)을 진행하는데,

OpenCV와 Matlab의 핵심 차이는 Bicubic 연산 시에 쓰이는 상수값이 다르다는 것이다.

Matlab의 경우는 -0.5, OpenCV는 -0.75를 사용하기 때문에 작은 차이로 인해 이미지가 달라진다.

 

 

 

 

참고 :

https://github.com/python-pillow/Pillow/issues/2718

https://stackoverflow.com/questions/22092744/what-is-the-difference-between-opencvs-and-matlabs-bicubic-algorithm

728x90