问题1:未找到指定路径
原因:在包含目录时,由于目录路径中有空格,而Matlab将空格前后解析成两部分,无法识别含有空格的路径。
解决办法:将路径中的空格加上双引号。
问题2:在编译compile.m文件时出现错误
根本原因:未正确包含相关的opencv库
直接原因:在包含目录时,由于目录路径中有空格,虽然加上双引号可以解决该问题,但是生成mex文件时,同样无法识别含有空格的路径。
解决办法:重新安装opencv,使得其安装路径中没有空格。
错误提示1:
D:\PROGRAM FILES\MATLAB\R2012A\BIN\MEX.PL: Error: 'Files\opencv\build\include' not found.
错误提示2:
正在创建库 C:\Users\HUOYAN~1\AppData\Local\Temp\mex_itwL4q\templib.x 和对象 C:\Users\HUOYAN~1\AppData\Local\Temp\mex_itwL4q\templib.exp
lk.obj : error LNK2019: 无法解析的外部符号 cvReleaseImage,该符号在函数 "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (?normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z) 中被引用
lk.obj : error LNK2019: 无法解析的外部符号 cvMatchTemplate,该符号在函数 "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (?normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z) 中被引用
lk.obj : error LNK2019: 无法解析的外部符号 cvGetRectSubPix,该符号在函数 "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (?normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z) 中被引用
lk.obj : error LNK2019: 无法解析的外部符号 cvCreateImage,该符号在函数 "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (?normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z) 中被引用
lk.obj : error LNK2019: 无法解析的外部符号 cvCalcOpticalFlowPyrLK,该符号在函数 mexFunction 中被引用
lk.obj : error LNK2019: 无法解析的外部符号 cvAlloc,该符号在函数 mexFunction 中被引用
lk.mexw64 : fatal error LNK1120: 6 个无法解析的外部命令
D:\PROGRAM FILES\MATLAB\R2012A\BIN\MEX.PL: Error: Link of 'lk.mexw64' failed.