/// <summary>
/// Transforms the image to compensate radial and tangential lens distortion.
/// The camera matrix and distortion parameters can be determined using cvCalibrateCamera2. For every pixel in the output image the function computes coordinates of the corresponding location in the input image using the formulae in the section beginning. Then, the pixel value is computed using bilinear interpolation. If the resolution of images is different from what was used at the calibration stage, fx, fy, cx and cy need to be adjusted appropriately, while the distortion coefficients remain the same
/// </summary>
/// <typeparam name="TColor">The color type of the image</typeparam>
/// <typeparam name="TDepth">The depth of the image</typeparam>
/// <param name="src">The distorted image</param>
/// <returns>The corrected image</returns>
public Image <TColor, TDepth> Undistort <TColor, TDepth>(Image <TColor, TDepth> src)
where TColor : struct, IColor
where TDepth : new()
{
Image <TColor, TDepth> res = src.CopyBlank();
CvInvoke.cvUndistort2(src.Ptr, res.Ptr, _intrinsicMatrix.Ptr, _distortionCoeffs.Ptr);
return(res);
}