Сделал по примеру.
Только делаю в билдере и поэтому функция cvSolve малость другая
Но почему-то массив coeff, в котором должны быть коэффициенты матрицы заполняется нулями.
CvMat* warp_matrix = cvCreateMat(3,3,CV_64FC1);
double a[8][8], b[8];
double coeff[8];
CvMat A = cvMat( 8, 8, CV_64FC1, a) ;
CvMat B = cvMat( 8, 1, CV_64FC1, b );
CvMat X = cvMat( 8, 1, CV_64FC1, coeff );
for(int i =0; i < 4;++i)
{
a[0] = a[i+4][3] = srcQuad.x;
a[1] = a[i+4][5] = srcQuad.y;
a[2] = a[i+4][5] = 1;
a[3] = a[4] = a[5] = a[i + 4][0] = a[i+4][1] = a[i+4][2] = 0;
a[6] = -srcQuad.x * dstQuad.x;
a[7] = -srcQuad.y * dstQuad.x;
a[i+4][6] = -srcQuad.x * dstQuad.y;
a[i+4][7] = -srcQuad.y * dstQuad.y;
b = dstQuad.x;
b[i+4] = dstQuad.y;
}
cvSolve( &A, &B, &X );