最終更新: mikk_ni3_92 2007年10月26日(金) 11:06:55履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> 逆行列
#include <cv.h>
#include <highgui.h>
#include <cstdio>
using namespace std;
float data[] =
{
1,2,1,
2,3,1,
1,2,2
};
int main( int argc, char **argv)
{
CvMat Matrix_A = cvMat (3,3, CV_32F, data);
CvMat *Matrix_ANSWER = cvCreateMat(3,3, CV_32F);
cvInvert(&Matrix_A, Matrix_ANSWER,CV_LU);
for(int i = 0;i<9;i++)
{
printf("answer[%d] = %d\n",i+1,(int)Matrix_ANSWER->data.fl[i]);
}
cvReleaseMat(&Matrix_ANSWER);
return 0;
}
関数が何をリターンするかで、ポインタ宣言になるかどうか変わる。
CvMat型はdata部分がunionで定義されている。
参考
http://opencv.jp/opencv/document/opencvref_cxcore_...
Matrix_ANSWERの方は、メモリを解放する。
#include <cv.h>
#include <highgui.h>
#include <cstdio>
using namespace std;
float data[] =
{
1,2,1,
2,3,1,
1,2,2
};
int main( int argc, char **argv)
{
CvMat Matrix_A = cvMat (3,3, CV_32F, data);
CvMat *Matrix_ANSWER = cvCreateMat(3,3, CV_32F);
cvInvert(&Matrix_A, Matrix_ANSWER,CV_LU);
for(int i = 0;i<9;i++)
{
printf("answer[%d] = %d\n",i+1,(int)Matrix_ANSWER->data.fl[i]);
}
cvReleaseMat(&Matrix_ANSWER);
return 0;
}
関数が何をリターンするかで、ポインタ宣言になるかどうか変わる。
CvMat型はdata部分がunionで定義されている。
参考
http://opencv.jp/opencv/document/opencvref_cxcore_...
Matrix_ANSWERの方は、メモリを解放する。