由于工作需要,需要使用Matlab 中的mexFunction调用C++程序, 该 mex function里又要用到opencv中的lib,所以在编译mex的时候,需要将opencCv的lib加到matlab的环境中。
系统环境: win XP

matalb: matalb 2010a
c++ compiler: visual studio 2008

首先先设定matlab所选定的compiler:

1. matlab command: mex -setup


(C:\Users\xxx\AppData\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat 为预设的的mex option file)

Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Visual C++ 2008 SP1 in C:\Program Files (x86)\Microsoft Visual Studio 9.0
[0] None
Compiler: 1
Please verify your choices:
Compiler: Microsoft Visual C++ 2008 SP1
Location: C:\Program Files (x86)\Microsoft Visual Studio 9.0
Are these correct [y]/n? y
***************************************************************************
Warning: MEX-files generated using Microsoft Visual C++ 2008 require
that Microsoft Visual Studio 2008 run-time libraries be
available on the computer they are run on.
If you plan to redistribute your MEX-files to other MATLAB
users, be sure that they have the run-time libraries.
***************************************************************************

Trying to update options file: C:\Users\xxx\AppData\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat
From template: C:\PROGRA~1\MATLAB\R2010a\bin\win64\mexopts\msvc90opts.bat
Done . . .
**************************************************************************

2. 修改mexopt.bat


        由于opencv所放置的路径为: D:\Program Files\OpenCV2.1\vc2008所以修改mexopts.bat(路径可以通过在Matlab中输入mex -v 得到),请参考,红色字体为添加和修改的部分:
set OPENCVDIR=D:\Program Files\OpenCV2.1\vc2008
set MATLAB=%MATLAB%
set VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0
set VCINSTALLDIR=%VSINSTALLDIR%\VC
rem In this case, LINKERDIR is being used to specify the location of the SDK
set LINKERDIR=C:\Program Files\\Microsoft SDKs\Windows\v6.0A\
set PATH=%VCINSTALLDIR%\bin\amd64;%LINKERDIR%\bin\x64;%VCINSTALLDIR%\BIN;%VSINSTALLDIR%\Common7\Tools;%VSINSTALLDIR%\Common7\Tools\bin;%MATLAB_BIN%;%PATH%
set INCLUDE=%LINKERDIR%\include;%VCINSTALLDIR%\ATLMFC\INCLUDE;%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\VCPackages;%INCLUDE%;%OPENCVDIR%\include\opencv
set LIB=%LINKERDIR%\LIB\x64;%VCINSTALLDIR%\LIB\amd64;%VCINSTALLDIR%\ATLMFC\LIB\amd64;%MATLAB%\extern\lib\win64;%LIB%;%OPENCVDIR%\lib;%OPENCVDIR%\bin
...略...
set LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:"%LIBLOC%" libmx.lib libmex.lib libmat.lib /MACHINE:X64 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" cv210.lib HighGUI210.lib cxcore210.lib cv210d.lib HighGUI210d.lib cxcore210d.lib

3. build mex: mex xxx.cpp

from:http://hi.baidu.com/ykaitao/item/4f2d4ad0b31760332b35c786
http://blog.csdn.net/shaoxiaohu1/article/details/8287637

matlab调用opencv的函数相关推荐

  1. matlab调用opencv库,matlab调用opencv库

    matlab中有许多图像处理的函数简单方便,比如矩阵x 求垂直积分 直接sum(x) 就可以了.不知道OPENCV里面有没有类似的功能,反正我是没找到.就准备用matlab调用OPENCV里面的函数. ...

  2. 如何在C语言里调用opencv C++函数?

    今天遇到个场景,必须要在c代码中调用opencv函数,但是opencv又是c++的.. 参考文章1:C++将char *转换为对象? 参考文章2:C++学习笔记(十一):void*指针.类型转换和动态 ...

  3. matlab 调用opencv,matlab调用opencv (mac 或 linux)

    思路为利用mexopencv编译opencv为mex,然后让MATLAB调用. 方法1 (仅适用于mac) 利用homebrew下载opencv3. $ brew install pkg-config ...

  4. matlab调用c语言驱动函数,[转载]Matlab调用C语言函数

    3.3000 要得出以上的结果,那应该怎样做呢? 解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便.MEX文件是由原C代码加上MEX文件专用的接口函数后 ...

  5. MATLAB调用Python自定义函数(类、函数等) Python调用MATLAB

    一.MATLAB调用Python函数 参考链接:https://blog.csdn.net/qq_27280237/article/details/84644900 知乎链接:https://zhua ...

  6. MATLAB调用C/C++函数的方法

    http://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-9510581626.24.ZO6sko&id=43401674106 精通MATLAB ...

  7. matlab调用c函数语言,MATLAB调用C/C++函数的方法

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通过MATLAB将C/C++函数编译成MEX函数,在MATLAB中就可以调用了. 1,首先装编译器 Matlab里键入m ...

  8. Matlab与OpenCV对应函数

    1.matlab中的imread相当于OpenCV中的cvLoadImage(imageName, CV_LOAD_IAMGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR):读 ...

  9. matlab调用python自定义函数模块进行数据分析总结

    出发点:团队其它成员写好的python函数功能,可以进行数据的导入,但利用python开发环境绘图分析没有用matlab分析的效果好,因此萌发了发挥matlab的绘图优势+原先python写好的功能组 ...

最新文章

  1. SpringCloud配置文件 application.yml和 bootstrap.yml区别,执行顺序
  2. OmniNet:基于环视鱼眼镜头的多任务视觉感知系统
  3. idea 设置光标回到上一次位置的快捷键
  4. python画三维几何图-Python下opencv使用笔记(二)(简单几何图像绘制)
  5. python 学习
  6. 教你如何区分描述统计学与推断统计学
  7. bootstrap validator 提供了哪些验证函数
  8. 信息学奥赛一本通 1147:最高分数的学生姓名 | OpenJudge NOI 1.9 02:输出最高分数的学生姓名
  9. zend studio一些常用配置
  10. C程序设计 电文密码——有一行电文,已按下面规律译成密码
  11. C++文本处理造轮子
  12. 三十五 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy分布式爬虫要点
  13. Mac 快捷键 桌面壁纸
  14. Es,N0,EsN0,EbN0,SNR关系详解
  15. 我的2018——最美的年龄为最纯的梦想尽最大的努力
  16. windows下ntp时间校对
  17. 元宇宙大热,是风口还是虎口
  18. python培训学校-上海python培训学校
  19. 医院临床路径管理系统源码 医院管理系统源码
  20. Java多线程上——基本概念及操作

热门文章

  1. 【SQL】数据库的SQL查询,涉及多个数据库
  2. 【采用】反欺诈之血缘关系分析和犯罪传导监测 - 知识图谱
  3. 基于R的信用评分卡模型解析
  4. 中台创业潮起,你中台创业了吗?
  5. 如何一夜暴富?深度学习教你预测比特币价格
  6. 人人皆可大数据!SACC教你玩转阿里ODPS
  7. 白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
  8. Spring Cloud【Finchley】-02服务发现与服务注册Eureka + Eureka Server的搭建
  9. Oracle-分区表解读
  10. 高精度减法(C++实现)