1.首先编写一个简单的opencv的cpp文件,保存为useOpencv.cpp
#pragma comment( lib, "opencv_world310.lib")
#include"mex.h"
#include <opencv/cv.h>
#include <opencv2/highgui.hpp>
void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
char name[256];
int buflens =mxGetNumberOfElements(prhs[0]);
mxGetString(prhs[0], name, buflens+1);
if(!mxIsChar(prhs[0]))
{
mexErrMsgTxt("First parameter must be string/n");
return ;
}
mexPrintf(name);
IplImage * img = cvLoadImage(name);
if(img->imageData == NULL)
{
mexErrMsgTxt("Error in image/n");
return;
}
cvNamedWindow("test");
cvShowImage("test",img);
cvWaitKey(0);
return;
}
2.然后输入命令:
mex -v -compatibleArrayDims useOpencv.cpp
可以找到options file的目录:
打开mex_c++_win64.xml文件修改如下:
可以看到文件的末尾是相关的路径设置。
(1)在PATH后面添加E:\opencv3.1.0\opencv\build\bin; (相关的opencv目录下的bin)
(2)在INCLUDE 后面添加
E:\opencv3.1.0\opencv\build\include;
E:\opencv3.1.0\opencv\build\include\opencv2;
E:\opencv3.1.0\opencv\build\include\opencv
注意这里要把具体到opencv和opencv2的目录也添加进去。如果不添加完整,静态链接是会报错。
(3)在LIB后添加 E:\opencv3.1.0\opencv\build\x64\vc14\lib;
注意的是这里用的是64位的环境,所以是x64后面的lib目录,如果是32bit,用x86的lib目录
(4)在LIBPATH后也要添加 E:\opencv3.1.0\opencv\build\x64\vc14\lib;
3.此时在命令行输入:
mex useOpencv.cpp
4.运行useOpencv.cpp('test.jpg');就能显示图像。