matlab+opencv混合编程

matlab+opencv混合编程

ID:37861142

大小:208.00 KB

页数:5页

时间:2019-06-01

matlab+opencv混合编程_第1页
matlab+opencv混合编程_第2页
matlab+opencv混合编程_第3页
matlab+opencv混合编程_第4页
matlab+opencv混合编程_第5页
资源描述:

《matlab+opencv混合编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、部分转载已说明来源。原文地址:http://blog.csdn.net/zouxy09/article/details/20553007另一篇:http://www.cnblogs.com/lukylu/p/3966871.html本人环境:matlab2013+VS2010+opencv2.4.9首先:matlab中输入 mex-setup选择编译环境(我选的vs2010)接下来测试一个matlab+c的混编程序.(下面的例子是实现a+b)保存为.c或.cpp文件。我保存的是cvMexAdd.cpp#include"mex.h" doubleadd(doublex,double

2、y) { returnx*y; } //标准函数定义是:voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]) //可以根据自己的喜欢修改变量名 /* *nargout:输出变量数 *arrayout:输出数组指针 *nargin:输入变量数 *arrayin:输入数组指针 */ voidmexFunction(intnargout,mxArray*arrayout[],intnargin,constmxArray*arrayin[]) { if(nargin!=2)//输入参数。(最好不要在编程的时

3、候用中文,这里为了方便观察) { mexPrintf("输入参数要有2个."); return; } double*a; doubleb=1.0,c=2.0; arrayout[0]=mxCreateDoubleMatrix(1,1,mxREAL); a=mxGetPr(arrayout[0]); b=*(mxGetPr(arrayin[0])); c=*(mxGetPr(arrayin[1])); *a=add(b,c); }然后在matlab中输入 mexcvMexAdd.cpp最后cvMexAdd(1,2)测试一下接下来的怎么结合matlab+opencv就简单了。假如m

4、atlab中已经写好了一个opencv的cpp程序如下:功能是实现一张图片转换成灰度图.我保存的名称是:cvRGB2Gray.cpp//Interface:convertanimagetograyandreturntoMatlab //Author:zouxy //Date:2014-03-05 //HomePage:http://blog.csdn.net/zouxy09 //Email:zouxy09@qq.com #include"opencv2opencv.hpp" #include"mex.h" usingnamespacecv; /***************

5、**************************************** Usage:[imageMatrix]=RGB2Gray('imageFile.jpeg'); Input: aimagefile OutPut: amatrixofimagewhichcanbereadbyMatlab **********************************************************/ voidexit_with_help() { mexPrintf( "Usage:[imageMatrix]=DenseTrack('imageFile.jpg

6、');" ); } staticvoidfake_answer(mxArray*plhs[]) { plhs[0]=mxCreateDoubleMatrix(0,0,mxREAL); } voidRGB2Gray(char*filename,mxArray*plhs[]) { mexPrintf("Hello3!"); //readtheimage Matimage=imread(filename); if(image.empty()){ mexPrintf("can'topeninputfile%s",filename); fake_answer(plhs); r

7、eturn; } //convertittograyformat Matgray; if(image.channels()==3) cvtColor(image,gray,CV_RGB2GRAY); else image.copyTo(gray); imshow("gray",gray); //converttheresulttoMatlab-supportedformatforreturning introws=gray.rows; intcols=gray.co

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。