공부2019. 9. 27. 23:05

https://dic1224.blog.me/220841161411 참고했습니다.

 

영상처리(OpenCV) Bilinear interpolation (양선형 보간법) : 과정

영상처리(OpenCV) Bilinear interpolation (양선형보간법) : 과정 [참고] 영상처리 Geometric Transf...

blog.naver.com

https://dic1224.blog.me/220841171866 참고했습니다.

 

영상처리(OpenCV) Bilinear interpolation (양선형보간법) : c++ 구현

영상처리(OpenCV) Bilinear interpolation (양선형보간법) : c++ 구현 [참고] 영상처리 Geometric Tr...

blog.naver.com

 

opencv 에 resize 함수를 Bilinear interpolation 으로 구현했습니다.

1과 2를 누르면 그림의 가로 세로가 1.1 만큼 커지거나 줄어들어서 보여지게 됩니다.

 

기본 원리는 기존 사진과 rate 만큼 크기가 변화한 사진이 있다면, 변화환 사진의 픽셀을 그 길이 만큼 참조하도록 움직입니다. 그리고 움직인 (y,x)를 rate로 나눠서 대응되는 픽셀을 찾고 그 픽셀의 주변 3개의 픽셀을 찾아서 채워야되는 픽셀과의 거리 비율만큼 4개의 픽셀의 값을 곱한 뒤 더해주는 방식입니다.

 

전체 코드입니다.

 

P1에 fx1이 아닌 fx2를 곱해주는 이유는 P1과 P2와 fx1과 fx2의 비율은 같다라는 비례식을 세우고 외항과 내항의 곱은 같다는 특성을 사용하면 알 수 있습니다.

 

 

실행 화면입니다.

Posted by richcherry