问题描述:Matlab调用CPP不新鲜,无非就是把写好的c语言编译成mex,然后直接调用呗。很多帖子和书都有描述。具体可以参考附录。这里描述的是如何用Matlab调用Opencv库支持的函数。解决方法:0、当然,你得先设置好起码的mex -setup,就是指定编译器,如果在M¥中大家都设成VS2008,VS2005之类的吧。进入正题1、首先打开我的Matlab2009b,然后输入mex -v,可以发现清单中Options file对应那项,直接选中那个文件名,在我这里差不多就是C:/Users/bit/AppData/Roaming/MathWorks /MATLAB/R2009b/mexopts.bat这个文件名,然后右键打开所谓open selection。2、进入编辑状态后,找到所谓PAPTH,INCLUDE,LIB等地方,和在Visual Studio中设置options中那个VC diectory目录一样。3、然后还得改LINKFLAGS=后面一大堆。如我这里把这个地方一行加成这样子set LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:"%LIBLOC%" cxcore200d.lib cv200d.lib highgui200d.lib ml200d.lib cvaux200d.lib libmx.lib libmex.lib libmat.lib /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /incremental:NO /implib:"%LIB_NAME%.x" /MAP:"%OUTDIR%%MEX_NAME%%MEX_EXT%.map"其实就是和调用Opencv里面设置lib那一大堆文件一样。4、这不算完,然后在VS中新建一个project,选择建立DLL动态链接库工程,最好都是空的。按照正常方式设置好opencv。然后在source files下添加你的code,比如我这里添加了Wrapper.cpp的程序。往里面填代码。其具体方式给个例子:#include "mex.h"#include #include #include #include #include using namespace cv;void mexFunction (int nlhs, mxArray *plhs[], // 输出参数个数,及输出参数数组int nrhs, const mxArray *prhs[]) // 输入参数个数,及输入参数数组{int m, n;double *params, *des, *loc;char name[256];int buflens = mxGetNumberOfElements(prhs[0]);mxGetString(prhs[0], name, buflens+1);params = mxGetPr(prhs[1]);loc = mxGetPr(prhs[2]);m = mxGetM(prhs[2]);n = mxGetN(prhs[2]);if (mxGetM(prhs[1]) != 9 || mxGetN(prhs[1]) != 1){mexErrMsgTxt("Error in parameter/n");}if (m <= 0 || n != 2){mexErrMsgTxt("Error in location/n");}if (!mxIsChar(prhs[0])){mexErrMsgTxt("First parameter must be string/n");}//mexPrintf(name);IplImage * img = cvLoadImage(name, 1);Mat mat(img);//Mat mat = imread(name, 1);if (mat.data == NULL){mexErrMsgTxt("Error in image/n");}NamedWindows("1",1);imshow("1",mat);WaitKey(0);return;}当然同目录下还得加入一个Wrapper.def文件,这个里面内容最好是如下:LIBRARY WrapperEXPORTS mexFunction6、这不算完,打开Tools->options,然后看到Project and solutions后往下面找VC++ Directories中那个Excutable files,变更为Include Files,然后添加你的matlab根目录/extern/include/win32还有include两个目录。此外,添加Library files中根目录/extern/lib/win32/microsoft。以及在Source files下添加Opencv2.0/Vc2008/src这个路径。跑到Proejct property下面找additional dependencies,在opencv一大堆lib后面继续添加libmex.lib libmx.lib libmat.lib。7、编译这个文件。然后开始debug,不出意外,会打开一个matlab 2009b的主程序,这样子后。找到你的vs project下面,然后在命令框输入mex Wrapper.obj,然后再输入Wrapper('lena.jpg');,这样子就可以调用opencv中那个函数了。

matlab安装第三方库,Matlab调用cpp+第三方库相关推荐

  1. MATLAB安装失败,MATLAB软件总是运行特别慢原因分析

    MATLAB安装失败,MATLAB软件总是运行特别慢原因分析 原因:以前安装的matlab含有许可文件未删除. 解决方法:将c盘matlab文件全部删除即可.解决许可文件逆破解).

  2. matlab 安装模块吗,matlab哪些模块不用安装 matlab组件要全装吗?

    matlab组件要全装吗? 这要看你经常用到哪些模块了,比如如果你不需要simulink仿真,就可以不选中安装它.一般是默认情况下全装的,这要可以避免由于文件不全而造成的运行错误. 最近想学matla ...

  3. java 动态库_java调用dll动态库文件的一般总结

    前一段时间,在项目需求中,需要调用一下第三方的动态库文件,下面是本人一些尝试的经历. 首先需要明白的是,在java中是不能直接调用动态库文件的,因为动态库文件是使用c或是c++编写的,作为一种跨   ...

  4. matlab安装 一闪,Matlab生成的exe文件一闪消失

    通过命令行可以知道生成的exe文件哪里有问题. 3.matlab GUI程序转换成exe可执行文件(转) 1).设置编译器: 在确定安装好Matlab Compiler后,还需要对Compiler进行 ...

  5. MATLAB安装c 错误,matlab编译c文件错误,求助

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 >> mex -setup Please choose your compiler for building external interfa ...

  6. matlab 安装需要dvd2,MATLAB安装时【弹出dvd1并插入dvd2继续】出现错误解决方案

    今天安装matlab时遇到的一个问题,就是安装到一多半时弹出"弹出DVD1并插入DVD2以继续"的对话框,然后我就弹出了DVD1,并且确认插入DVD2后点击确认按钮后发现还是不行. ...

  7. 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作

     一  QT的内存管理 1  QT中的内存管理是QObject来管理的 2  QT中的内存管理没有cocos2dx中的引用计数 3  组件可以指定父对象 QTimer *timer = QTime ...

  8. java调用c so动态库_jni 调用C动态库dll/so

    http://hi.baidu.com/fengying765/blog/item/7081113e5fde53e555e7233f.html 作为主调方的Java源程序TestJNI.java如下. ...

  9. python execjs库_python3调用js的库之execjs

    针对现在大部分的网站都是使用js加密,js加载的,并不能直接抓取出来,这时候就不得不适用一些三方类库来执行js语句 执行JS的类库:execjs,PyV8,selenium,node 这里主要讲一下e ...

最新文章

  1. Microsoft Visual SourceSafe 使用指南
  2. 7.1 matlab符号对象(符号对象的建立和四则运算)
  3. Android 内存泄漏总结文档
  4. 前端学习(1805):前端调试之列表伪类练习
  5. 应用传送网络(ADN):率先架起“东数西算”的“高速公路”
  6. OpenAI升级Codex,直接将书面语言转为计算机代码;区块链网站被黑客偷走6亿美元加密货币|极客头条...
  7. Java定时器quartz停止
  8. MongoDB的正确使用姿势
  9. linux popen阻塞_linux popen()与system()的区别
  10. BZOJ5232[Lydsy2017省队十连测] 好题
  11. mysql中文本类型的长度限制_关于数据库:MySQL类型文本的最大长度
  12. [PTA]6-12 判断奇偶性
  13. win11安装wsl2及linux系统安装anaconda cuda tensorrt
  14. B站视频下载器,超清4k视频下载,一键解析视频合集,支持批量下载提取视频封面
  15. 【图形学】计算机图形学-练习题7
  16. 优秀成绩标记—— 小王是班级干部,对于即将到来的三好学生评选,负责统计平均成绩超过85分的同学
  17. UDP(用户数据报协议)
  18. 张晓楠讲如何提高英语听力
  19. Python - 文本处理模块
  20. 线下空间体验如何承载商业策略——从宜家的冰淇淋说起

热门文章

  1. 使用 Python 为女神挑选口红 ,成功把女神拿下,你学会了吗
  2. 22个学习Python必备的库,你是否还有没见过的呢
  3. 618购物节要到了,Python帮你实现商品有货的微信提醒
  4. python各个版本改动
  5. K-Means聚类算法的原理及实现
  6. Extjs可视化设计视频教程二
  7. 简单程序所需要的简单 asp.net通用数据库访问类
  8. ML《集成学习(一)Bagging 和 Random Forest》
  9. 【Tensorflow】深度学习实战05——Tensorflow实现Inception V3
  10. Math3中StatUtils类和MathArrays的使用(数组运算)