float k[]={1531.49,0,1267.78,0,1521.439,952.078,0,0,1};
float d[]={-0.27149,0.15384,0.0046,-0.0026};
CvMat camera1=cvMat(3, 3, CV_32FC2, k);
CvMat distCoeffs1=cvMat(1,4,CV_32FC2,d);
const int npoints = 4; // number of point specified
// Points initialization.
// Only 2 ponts in this example, in real code they are read from file.
float input_points[npoints][4] = {{0,0}, {2560, 1920}}; // the rest will be set to 0
CvMat * src = cvCreateMat(1, npoints, CV_32FC2);
CvMat * dst = cvCreateMat(1, npoints, CV_32FC2);
// fill src matrix
float * src_ptr = (float*)src->data.ptr;
for (int pi = 0; pi < npoints; ++pi) {
for (int ci = 0; ci < 2; ++ci) {
*(src_ptr + pi * 2 + ci) = input_points[pi][ci];
}
}
cvUndistortPoints(src, dst, &camera1, &distCoeffs1);
Я надеюсь использовать функцию cvUndistortPoints .И использовал пример кода для test.When я использовал VS2012 бежать, он dosen't work.It говорит «src.size dosen't соответствовать dst.size».Для Я новичок в OpenCV.Can кто-то мне помочь? Спасибо. результат подножка по vs2012 1, что случилось с cvUndistortPoints
, пожалуйста, избегайте использования opencv-наследия c-api. – berak