现在的位置: 首页 > 综合 > 正文

Matlab2012调用opencv2.3.1时的配置

2013年10月21日 ⁄ 综合 ⁄ 共 4482字 ⁄ 字号 评论关闭

Matlab2012调用opencv2.3.1时的配置

1、 
首先保证vs2010能正确调用opencv函数,配置过程见上一篇日志。

2、 
Matlab
中选择编译器,操作如下:

打开matlab2012,输入mex –setup,出现如下提示:

Welcome to mex -setup.  This utility will help you set up 

a default compiler.  For a list of supported compilers, see 

http://www.mathworks.com/support/compilers/R2012a/win32.html

Please choose your compiler for building MEX-files:

Would you like mex to locate installed compilers [y]/n?

输入y,出现如下提示:

Select a compiler:

[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2012a\sys\lcc

[2] Microsoft Visual C++ 2010 in C:\Program Files\Microsoft Visual Studio 2010

[0] None

Compiler:

输入2,出现如下提示:

Please verify your choices:

Compiler: Microsoft Visual C++ 2010 

Location: C:\Program Files\Microsoft Visual Studio 2010

Are these correct [y]/n?

输入y

出现如下提示,表明成功:

***************************************************************************

  Warning: MEX-files generated using Microsoft Visual C++ 2010 require

           that Microsoft Visual Studio 2010 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:\Documents and Settings\zhangjing\Application Data\MathWorks\MATLAB\R2012a\mexopts.bat

From template:              C:\PROGRA~1\MATLAB\R2012a\bin\win32\mexopts\msvc100opts.bat

 

Done . . .

 

**************************************************************************

  Warning: The MATLAB C and Fortran API has changed to support MATLAB

           variables with more than 2^32-1 elements.  In the near future

           you will be required to update your code to utilize the new

           API. You can find more information about this at:

           http://www.mathworks.com/help/techdoc/matlab_external/bsflnue-1.html

           Building with the -largeArrayDims option enables the new API.

**************************************************************************

3、 
配置一些目录

matlab中,输入mex –v

下面会有显示:

-> Default options filename found in C:\Documents and Settings\zhangjing\Application Data\MathWorks\MATLAB\R2012a

----------------------------------------------------------------

->   
Options file           = C:\Documents and Settings\zhangjing\Application Data\MathWorks\MATLAB\R2012a\mexopts.bat

     
MATLAB                 = C:\PROGRA~1\MATLAB\R2012A

->   
COMPILER               = cl

->   
Compiler flags:

        
COMPFLAGS           = /c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD

        
OPTIMFLAGS          = /O2 /Oy- /DNDEBUG

        
DEBUGFLAGS          = /Z7

        
arguments           = 

        
Name switch         = /Fo

。。。。。。。。。(此处省略一些)

选中上面Options file=后面的部分,右键->Open
Selection
,打开mexopts.bat

找到下面部分,增加红色的部分

set MATLAB=%MATLAB%

set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 2010

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\v7.0A\

set PATH=%VCINSTALLDIR%\bin;%VCINSTALLDIR%\VCPackages;%VSINSTALLDIR%\Common7\IDE;%VSINSTALLDIR%\Common7\Tools;%LINKERDIR%\bin;%MATLAB_BIN%;%PATH%

set INCLUDE=%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\ATLMFC\INCLUDE;%LINKERDIR%\include;%INCLUDE%;D:\opencv\include;D:\opencv\include\opencv;D:\opencv\include\opencv2

set LIB=%VCINSTALLDIR%\LIB;%VCINSTALLDIR%\ATLMFC\LIB;%LINKERDIR%\lib;%MATLAB%\extern\lib\win32;%LIB%;D:\opencv\build\x86\vc10\lib

set MW_TARGET_ARCH=win32

 

rem ********************************************************************

rem Compiler parameters

rem ********************************************************************

set COMPILER=cl

set COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD

set OPTIMFLAGS=/O2 /Oy- /DNDEBUG

set DEBUGFLAGS=/Z7

set NAME_OBJECT=/Fo

 

rem ********************************************************************

rem Linker parameters

rem ********************************************************************

set LIBLOC=%MATLAB%\extern\lib\win32\microsoft

set LINKER=link

set LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:"%LIBLOC%"
opencv_core231d.lib opencv_highgui231d.lib opencv_video231d.lib opencv_ml231d.lib opencv_legacy231d.lib opencv_imgproc231d.lib opencv_flann231d.lib opencv_features2d231d.lib opencv_calib3d231d.lib opencv_objdetect231d.lib opencv_contrib231d.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 /manifest /incremental:NO /implib:"%LIB_NAME%.x" /MAP:"%OUTDIR%%MEX_NAME%%MEX_EXT%.map"

set LINKOPTIMFLAGS=

(注意上面include lib处要加分号,LINKFLAGS处各个lib之前要回空格

抱歉!评论已关闭.