aihot  2017-05-14 09:18:10  OpenCV |   查看评论   
    }
}

執行結果:


cvMatMulAdd()是簡單的相乘在相加的函式,只要符合矩陣大小的規格,它就可以對三個矩陣做相乘在相加的動作,對於上面的程式碼,它的計算方式如下


這是將矩陣相乘後的結果在加上另外一個矩陣,這跟cvGEMM()什麼關係呢?cvGEMM()函式裡面包含了很多種計算方式,而cvmMul(),cvMatMul(),cvMatMulAdd()則是用#define來擷取它的算法,而cvGEMM()的使用方式如下


簡單cvGEMM()函式實作
#include
#include


float array1[]={3,1,2,0,1,5};
float array2[]={4,3,1,1,6,0};
float array3[]={-10,-2,-20,10};

void PrintMatrix(CvMat *Matrix,int Rows,int Cols,int Channels);
int main()
{
     CvMat *A=cvCreateMat(2,3,CV_32FC1);
     CvMat *B=cvCreateMat(3,2,CV_32FC1);
     CvMat *C=cvCreateMat(2,2,CV_32FC1);
     CvMat *ResultMatrix=cvCreateMat(2,2,CV_32FC1);
     double alpha =0.5;
     double beta =0.1;

     cvSetData(A,array1,A->step);
     cvSetData(B,array2,B->step);
     cvSetData(C,array3,C->step);

     printf("cvGEMM():\n");
     cvGEMM(A,B,alpha,C,beta,ResultMatrix);
     PrintMatrix(ResultMatrix,2,2,1);

     system("pause");
}
void PrintMatrix(CvMat *Matrix,int Rows,int Cols,int Channels)
{
    for
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自openCV的矩阵乘法

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]