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

 openCV的矩阵乘法

OpenCV提供了一個通用矩陣乘法的函式,cvGEMM(),代表的是GEneralized Matrix Multiplication,cvGEMM()可以處理線性代數方面許多的乘法運算,cvmMul()矩陣乘法這個函式就是從這裡來的,cvmMul()在"cvcompat.h"及"cxcore.h"這兩個函式庫被定義為

#define cvmMul(src1,src2,dst) cvMatMulAdd(src1,src2,0,dst)
#define cvMatMul(src1,src2,dst) cvMatMulAdd((src1),(src2),NULL,(dst))
#define cvMatMulAdd(src1,src2,src3,dst) cvGEMM((src1),(src2),1.,(src3),1.,(dst),0)


先簡單的介紹cvmMul()跟cvMatMul()的用法


cvmMul()及cvMatMul()的實作
#include
#include


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

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 *ResultMatrix=cvCreateMat(2,2,CV_32FC1);

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

     printf("cvmMul():\n");
     cvmMul(A,B,ResultMatrix);
     PrintMatrix(ResultMatrix,2,2,1);

     printf("\ncvMatMul():\n");
     cvMatMul(A,B,ResultMatrix);
     PrintMatrix(ResultMatrix,2,2,1);

     system("pause");
}
void PrintMatrix(CvMat *Matrix,int Rows,int Cols,int Channels)
{
    for(int i=0;i
     {
   
 1/9    1 2 3 4 5 6 下一页 尾页
 

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

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