bilinear interpolation으로 검색해보면 기본 개념에 대해서 잘 나오고
왜곡 보정도 검색하면 잘 나오는데... 이것을 두 개를 내 상황에 맞게 잘 합치면서 동시에 결과를 잘 내려다 보니!! 엄청 헤맸다.
결론은 bilinear interpolation은 아래 링크를 주로 참조하였고
왜곡 보정은 아래 링크를 주로 참조하였다.
https://darkpgmr.tistory.com/37
다만 왜곡 보정 관련해서 올라온 소스코드를 잘 살펴보면, distortPixel(int, int) 함수가 반올림 된 int 좌표를 반환한다. 이 부분을 간과한채로 보간을 시도하다가 완전 잘못된 방향으로 빠졌던 것! 반올림된 int 값이 아닌 있는 그대로의 값 double 값을 리턴받아서 그 주변의 정수 좌표를 가지고 보간해주면 된다!
또 한 가지 간과한 사실은 내가 사용하는 이미지가 G B G B ... R G R G ... 이렇게 bayer 포맷으로 올라오는데 보간할 때 R, G, B 좌표를 가지고 거리를 구해서 weight를 구해야 하고 실제 pixel의 값 (255 같이)은 R, B일 경우 그 바로 옆 G값을 써야하는데 보간을 할 때 네 점이 필요하니까 그 네 점 중에 겹치지 않게 G 값을 사용하도록 해주어야한다!!!!!!!!!!!!!!!! 말로 설명하니 복잡하네...
다 찍어보면서 라인바이 라인으로.. 내가 원하는 결과를 잘 가져오는지 확인하면서 해보니 위와 같은 사실을 알게 되었다.... . 휴.. 암튼 보간 완료! 어바! (어쩌다 바이!)
p.s. 내가 하려던 일은 bayer 이미지를 왜곡 보정해주면서 동시에 보간까지 된 이미지를 얻어내는 것이다.