//运行参数: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,1}; double vc[3]; CvMat Va=cvMat(3,1,CV_64FC1,va); CvMat Vb=cvMat(3,vb); CvMat Vc=cvMat(3,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" ); } }
原文地址:https://www.jb51.cc/vb/260058.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。