I know the default OpenCV Calibration systems model a Pinhole camera, but I'm working with a system using extremely wide FOV lens (187-degrees). If there any existing way to do this in OpenCV, or to work with just wide lenses? Or will I have to rewrite all the calibration/undistort for my system?
Seems there's no good OpenCV way to do this.
I wound up using OCamLib to do the actual calibration, then writing my own "undistortPoints" function (using Scaramuzza's algorithms) to undistort 2D image points into 3D unit vectors (rather than 2D points). Unfortunately, this also breaks lots of other stuff in OpenCV because most OpenCV image processing functions expect 2D points and their own pinhole calibration model, so I've had to rebuild significant portions of the code for this.
I welcome any other insight into this.