# Are cv::fisheye::undistortImage and (cv::initUndistortRectifyMap + cv::remap) different ?

Hello there,

I am having trouble understanding the functioning of both processes as written in the title.

I am working with a micro-camera (with which seems a barrel distortion) and I would like to undistort the frames given by the camera. I am not working with the camera calibration at the moment, because the micro-camera vendor (**DFRobot**) already provides the distortion coefficients for this type of lens. I am just having fun with the different functions for the camera calibration. Here are some basic points that might help to understand:

- The frame has a size of 640x480.
- The X center projection is assumed to be 320.
- The Y center projection is assumed to be 240.
- The focal length is manually set to 544 (for both fx and fy).
- The R matrix (the rectification transformation matrix) is set as an identity matrix.
- The newCameraMatrix is set using cv::getOptimalNewCameraMatrix.

This is a picture taken when I execute my program using cv::fisheye::undistortImage :

I was expecting to get the same result using cv::initUndistortRectifyMap and cv::remap, because the OpenCV documentation for undistortImage stipulates :

*The function is simply a combination of fisheye::initUndistortRectifyMap (with unity R ) and remap (with bilinear interpolation).*

Here is what I am getting using both functions above :

Why is that ? I don't really understand, I might miss something over there. I can provide some code for further help if needed. :)

Have a good day !