Matlab2012調用opencv2.3.1時的配置

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之前要回空格

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章