본문 바로가기
카테고리 없음

보간 성공!

by 어다프 2020. 2. 25.

bilinear interpolation으로 검색해보면 기본 개념에 대해서 잘 나오고

왜곡 보정도 검색하면 잘 나오는데... 이것을 두 개를 내 상황에 맞게 잘 합치면서 동시에 결과를 잘 내려다 보니!! 엄청 헤맸다.

 

결론은 bilinear interpolation은 아래 링크를 주로 참조하였고

https://m.blog.naver.com/PostView.nhn?blogId=dic1224&logNo=220841171866&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

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

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

blog.naver.com

 

왜곡 보정은 아래 링크를 주로 참조하였다.

https://darkpgmr.tistory.com/37

 

라이브 왜곡 보정 프로그램

실시간(라이브)으로 왜곡 보정된 영상을 보여주는 프로그램입니다. 왜곡보정에 관한 이론적인 내용은 [영상처리] - 카메라 왜곡보정 - 이론 및 실제을 참조해 주세요. 프로그램 다운로드 (소스코드 & 샘플동영상..

darkpgmr.tistory.com

다만 왜곡 보정 관련해서 올라온 소스코드를 잘 살펴보면, 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 이미지를 왜곡 보정해주면서 동시에 보간까지 된 이미지를 얻어내는 것이다.