我需要Matlab来处理一些mpg视频数据,并使用OpenCV库提升性能。我使用cvCaptureFromFile()来加载视频。当使用g ++独立编译时它工作正常(当然代码应该从下面修改),但是当用mex编译时它无法在Matlab中打开视频文件。在Matlab中调用时,cvCaptureFromFile()始终返回NULL。在编译和链接mex期间没有错误消息或警告。有什么想法吗?提前谢谢。
//OS: Ubuntu 14.04 LTS 64-bit
//Matlab R2013a
//OpenCV: 2.4.9
//compiler: g++-4.4, or gcc-4.4
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<cv.h>
#include<cvaux.h>
#include<highgui.h>
#include "mex.h"
using namespace std;
static CvCapture* capture = NULL;
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
string filename;
filename = "test.mpg";
capture = cvCaptureFromFile(filename.c_str());
if (capture == NULL)
{
cout<<"Cannot open file!"<<endl;
}
}