CvMatについてメモ
cvCreateMat()とcvMat()の違い.
CvMat* matrix1 = cvCreateMat(3, 3, CV_64F); double a[9]; CvMat matrix2 = cvMat(3, 3, CV_64F, a);
配列の先頭アドレスを渡せるのがcvMatということだった.配列の値を操作するだけでmatrix2の値も変わるので使いやすいかもしれない.CvMat*とCvMatに注意.
CvMat型の配列についてはこう
double b[9*N]; CvMat matrix3[N]; for(int i=0; i<N; i++){ matrix3[i] = cvMat(3, 3, CV_64F, b+i*9 ); }
と,CvMat*型の配列については
CvMat* matrix4[N]; for(int i=0; i<N; i++){ matrix4[i] = cvCreateMat(3, 3, CV_64F); }
となるのかな.関数にほうり込む場合は
cvFoo( matrix1, &matirix2, &matrix3[i], matrix4[i] );
という感じ?今はvector