Matlab2017a:通过mex调用opencv

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');就能显示图像。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值