@ -42,7 +42,7 @@ to get help on the purpose and call signature of a particular method, or
to get general help regarding the OpenCV bindings. If you ever run into issues with the bindings
to get general help regarding the OpenCV bindings. If you ever run into issues with the bindings
cv.buildInformation();
cv.buildInformation();
will produce a printout of diagnostic information pertaining to your particular build of OS, OpenCV and Matlab. It is useful to submit this information alongside a bug report to the OpenCV team.
will produce a printout of diagnostic information pertaining to your particular build of OS, OpenCV and Matlab. It is useful to submit this information alongside a bug report to the OpenCV team.
@ -52,41 +52,43 @@ The Matlab bindings come with a set of utilities to help you quickly write your
The first thing you need to learn how to do is write a mex-file with Matlab constructs. Following is a brief example:
The first thing you need to learn how to do is write a mex-file with Matlab constructs. Following is a brief example:
// include useful constructs
```cpp
// this automatically includes opencv core.hpp and mex.h)
// include useful constructs
#include<opencv2/matlab/bridge.hpp>
// this automatically includes opencv core.hpp and mex.h)
using namespace cv;
#include<opencv2/matlab/bridge.hpp>
using namespace std;
using namespace cv;
using namespace std;
// define the mex gateway
void mexFunction(int nlhs, mxArray* plhs[],
// define the mex gateway
int nrhs, const mxArray* prhs[]) {
void mexFunction(int nlhs, mxArray* plhs[],
int nrhs, const mxArray* prhs[]) {
// claim the inputs into scoped management
MxArrayVector raw_inputs(prhs, prhs+nrhs);
// claim the inputs into scoped management
MxArrayVector raw_inputs(prhs, prhs+nrhs);
// add an argument parser to automatically handle basic options
ArgumentParser parser("my function");
// add an argument parser to automatically handle basic options
There are a couple of important things going on in this example. Firstly, you need to include `<opencv2/matlab/bridge.hpp>` to enable the bridging capabilities. Once you've done this, you get some nice utilities for free. `MxArray` is a class that wraps Matlab's `mxArray*` class in an OOP-style interface. `ArgumentParser` is a class that handles default, optional and named arguments for you, along with multiple possible calling syntaxes. Finally, `Bridge` is a class that allows bidirectional conversions between OpenCV/std and Matlab types.
There are a couple of important things going on in this example. Firstly, you need to include `<opencv2/matlab/bridge.hpp>` to enable the bridging capabilities. Once you've done this, you get some nice utilities for free. `MxArray` is a class that wraps Matlab's `mxArray*` class in an OOP-style interface. `ArgumentParser` is a class that handles default, optional and named arguments for you, along with multiple possible calling syntaxes. Finally, `Bridge` is a class that allows bidirectional conversions between OpenCV/std and Matlab types.