OpenCV函数:cvGEMM

来源:互联网 发布:python开发工具下载 编辑:程序博客网 时间:2024/06/05 18:28

执行广义矩阵乘法,代表的是GEneralized Matrix Multiplication,cvGEMM()可以处理线性代数方面许多的乘法运算!

double cvGEMM(//矩阵的广义乘法运算  const CvArr* src1,//乘数矩阵  const CvArr* src2,//乘数矩阵  double alpha,//1号(src1)矩阵系数  const CvArr* src3,//加权矩阵  double beta,//src3矩阵系数  CvArr* dst,//结果矩阵  int tABC = 0//变换标记);

tABC变换标记及其对应的含义

GEMM_1_T transposes src1.(转置src1)

GEMM_2_T transposes src2. (转置src2)

GEMM_3_T transposes src3. (转置src3)

函数对应的乘法运算公式为:dst = (alpha*src1)xsrc2+(beta*src3)

 

<span style="font-size:18px;"><span style="font-size:18px;">/*------------这段代码主要是cvGEMM的一个简单demo--------------*/#include<opencv2\opencv.hpp>#include<iostream>using namespace cv;using namespace std;int main(){double a[3][3]={{1,0,0},{0,2,0},{0,0,3}};CvMat va=cvMat(3,3, CV_64FC1,a);cout<<"目标矩阵1:"<<endl;for(int i=0;i<3;i++){for (int j = 0; j < 3; j++){cout<<cvmGet(&va,i,j);}cout<<endl;}double b[3][3]={{1,1,1},{1,1,1},{1,1,1}};CvMat vb=cvMat(3,3,CV_64FC1,b);cout<<"目标矩阵2:"<<endl;for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){cout<<cvmGet(&vb,i,j);}cout<<endl;}double c[3][3]={{0,0,0},{0,0,0},{0,0,0}};CvMat vc=cvMat(3,3,CV_64FC1,c);cvGEMM(//矩阵的广义乘法运算&va,//输入矩阵&vb,//第二个输入矩阵1,//1号矩阵的系数&vc,//加权矩阵4,//第三个矩阵的权值,不知道有什么用&vc//结果矩阵);cout << "结果矩阵:"<< endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++){cout<<cvmGet(&vc,i,j);}cout << endl;}getchar();return 0;}</span></span>
代码运行结果:

参考:http://www.tuicool.com/articles/Q3mM3m

0 0
原创粉丝点击