Mat 矩阵的叉乘与点乘

来源:互联网 发布:coc亡灵升级数据 编辑:程序博客网 时间:2024/05/01 18:41

Mat 矩阵的叉乘与点乘

一 矩阵的叉乘

(1)cvCrossProduct函数
其结构:

void cvCrossProdust(//计算两个三维向量的叉积      const CvArr* src1,      const CvArr* src2,      CvArr* dst  );  

示例代码

[cpp] view plain copy 在CODE上查看代码片派生到我的代码片#include <cv.h>  #include <highgui.h>  #include <stdio.h>  #include <iostream>  using namespace std;  int main()   {       double va[] = {3,0,0};        double vb[] = {0,4,0};        double vc[3];        CvMat Va=cvMat(3, 1, CV_64FC1, va);        CvMat Vb=cvMat(3, 1, CV_64FC1, vb);        CvMat Vc=cvMat(3, 1, CV_64FC1, vc);        cvCrossProduct(&Va, &Vb, &Vc);          cout <<CV_MAT_ELEM(Vc,double,0,0)<<endl;      cout <<CV_MAT_ELEM(Vc,double,1,0)<<endl;      cout <<CV_MAT_ELEM(Vc,double,2,0)<<endl;      getchar();      return 0;  } 

参考:http://blog.csdn.net/zhurui_idea/article/details/28422349

(2)cvDotProduct函数
其结构:

double cvDotProduct(//计算向量点积    const CvArr* src1,    const CvArr* src2);

示例代码:

#include <cv.h>#include <highgui.h>#include <stdio.h>#include <iostream>using namespace std;int main() {     double va[] = {1,2,3};      double vb[] = {3,2,1};      CvMat Va=cvMat(3, 1, CV_64FC1, va);      CvMat Vb=cvMat(3, 1, CV_64FC1, vb);     cout << "其内积为:" << cvDotProduct(&Va,&Vb);       getchar();    return 0;}

参考:http://www.tuicool.com/articles/fMRZz2R
上面两个函数是我在做光笔动态参考坐标系时用过的函数,故而在此整理一下,以便下次快速调用。

0 0