#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <stdlib.h>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
IplImage *image = cvLoadImage("12.png");
CvMat *intrinsic = (CvMat*)cvLoad("Intrinsics.xml");
CvMat *distortion = (CvMat*)cvLoad("Distortion.xml");
IplImage* mapx = cvCreateImage(cvGetSize(image), IPL_DEPTH_32F, 1);
IplImage* mapy = cvCreateImage(cvGetSize(image), IPL_DEPTH_32F, 1);
cvInitUndistortMap(
intrinsic,
distortion,
mapx,
mapy
);
cvNamedWindow("Undistort");
IplImage *t = cvCloneImage(image);
cvShowImage("Raw image", image); // Show raw image
cvRemap(t, image, mapx, mapy); // Undistort image
cvReleaseImage(&t);
cvShowImage("Undistort", image); // Show corrected image
cvSaveImage("undistort12.png",image);
waitKey(0);
}