向量乘积

//运行参数:girl.jpg 
#pragma comment(lib,"highgui.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"ml.lib")
#pragma comment(lib,"cvaux.lib")
#pragma comment(lib,"cvcam.lib") 

#include "cv.h"
#include "highgui.h"
#include <stdio.h>

inline void cvDoubleMatPrint( const CvMat* mat );
int main( int argc, char** argv )
{
 IplImage* pImg; //声明IplImage指针

 if( argc == 2 && (pImg = cvLoadImage( argv[1], CV_LOAD_IMAGE_UNCHANGED)) != 0 )
 {
//*
	double va[] = {1, 2, 3};
	double vb[] = {0, 0, 1};
	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); 
 
	double res=cvDotProduct(&Va,&Vb); // 向量点乘:   Va . Vb -> res
	cvCrossProduct(&Va, &Vb, &Vc);    // 向量叉乘:   Va x Vb -> Vc
	//注意在进行叉乘运算时,Va, Vb, Vc 必须是仅有3个元素的向量.
//*/
 
  cvDoubleMatPrint(&Va);
  cvDoubleMatPrint(&Vb);
  cvDoubleMatPrint(&Vc);
  printf("res=%lf\n",res);

  cvNamedWindow( "Image", 1 ); // 创建窗口
  cvShowImage( "Image", pImg ); // 显示图像
  cvWaitKey(0);     // 等待按键


  cvDestroyWindow( "Image" );  // 销毁窗口
  cvReleaseImage( &pImg );  // 释放图像

  return 0;
 }

 return -1;
}

inline void cvDoubleMatPrint( const CvMat* mat )
{
    int i, j;
    for( i = 0; i < mat->rows; i++ )
    {
        for( j = 0; j < mat->cols; j++ )
        {
            printf( "%lf ",cvmGet( mat, i, j ) );
        }
        printf( "\n" );
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值