Viola jones d'OpenCV sur MATLAB (encore)
Bonjour,
Je me permets de poster ici car malgré toute l'aide de Dut sur la plupart des topics similaires, je n'arrive pas à résoudre mon problème.
Alors tout d'abord,
ma version de MATLAB "7.13.0.564 (R2011b)"
mon compilateur "Microsoft Software Development Kit (SDK) 7.1 in c:\Program Files (x86)\Microsoft Visual Studio 10.0"
Et OpenCV 2.1 dans le fichier: "C:\Program Files (x86)\OpenCV2.1" (je sais les espaces c'est mal)
Je veux faire un truc tout bête: charger une image
Code:
1 2 3 4 5 6 7 8 9 10 11
| #include <highgui.h>
#include "mex.h"
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] ) {
printf("Hello World !\n");
//load the image
IplImage* img = cvLoadImage("./cameraman.png");
} |
Je compile en utilisant
Code:
mex -v helloWorld.cpp -I"C:\Program Files (x86)\OpenCV2.1\include\opencv" -I"C:\Program Files (x86)\OpenCV2.1\include" "C:\Program Files (x86)\OpenCV2.1\lib\*.lib"
(j'ai vu qu'on pouvait modifier le mexopts.bat mais pour l'instant j'aimerais déjà que cela fonctionne).
et j'obtiens finalement l'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| -> Default options filename found in C:\Users\~username\AppData\Roaming\MathWorks\MATLAB\R2011b
----------------------------------------------------------------
-> Options file = C:\Users\~username\AppData\Roaming\MathWorks\MATLAB\R2011b\mexopts.bat
MATLAB = C:\Program Files\MATLAB\R2011b
-> 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 = -I"C:\Program Files (x86)\OpenCV2.1\include\opencv" -I"C:\Program Files (x86)\OpenCV2.1\include"
Name switch = /Fo
-> Pre-linking commands =
-> LINKER = link
-> Link directives:
LINKFLAGS = /dll /export:mexFunction /LIBPATH:"C:\Program Files\MATLAB\R2011b\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib cv210.lib cxcore210.lib highgui210.lib cxcore210.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 /manifest /incremental:NO /implib:"C:\Users\~username\AppData\Local\Temp\mex_hrM5os\templib.x" /MAP:"helloWorld.mexw64.map"
LINKDEBUGFLAGS = /debug /PDB:"helloWorld.mexw64.pdb"
LINKFLAGSPOST =
Name directive = /out:"helloWorld.mexw64"
File link directive =
Lib. link directive =
Rsp file indicator = @
-> Resource Compiler = rc /fo "mexversion.res"
-> Resource Linker =
----------------------------------------------------------------
--> cl -I"C:\Program Files (x86)\OpenCV2.1\include\opencv" -I"C:\Program Files (x86)\OpenCV2.1\include" /c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD /FoC:\Users\~username\AppData\Local\Temp\mex_hrM5os\helloWorld.obj -I"C:\Program Files\MATLAB\R2011b\extern\include" /O2 /Oy- /DNDEBUG -DMX_COMPAT_32 helloWorld.cpp
helloWorld.cpp
Contents of C:\Users\~username\AppData\Local\Temp\mex_hrM5os\mex_tmp.rsp:
C:\Users\~username\AppData\Local\Temp\mex_hrM5os\helloWorld.obj
--> link /out:"helloWorld.mexw64" /dll /export:mexFunction /LIBPATH:"C:\Program Files\MATLAB\R2011b\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib cv210.lib cxcore210.lib highgui210.lib cxcore210.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 /manifest /incremental:NO /implib:"C:\Users\~username\AppData\Local\Temp\mex_hrM5os\templib.x" /MAP:"helloWorld.mexw64.map" @C:\Users\~username\AppData\Local\Temp\mex_hrM5os\mex_tmp.rsp
Création de la bibliothèque C:\Users\~username\AppData\Local\Temp\mex_hrM5os\templib.x et de l'objet C:\Users\~username\AppData\Local\Temp\mex_hrM5os\templib.exp
helloWorld.obj : error LNK2019: symbole externe non résolu cvLoadImage référencé dans la fonction mexFunction
helloWorld.mexw64 : fatal error LNK1120: 1 externes non résolus
C:\PROGRA~1\MATLAB\R2011B\BIN\MEX.PL: Error: Link of 'helloWorld.mexw64' failed. |
Merci de votre aide