19 void mexFunction(
int nlhs, mxArray *plhs[],
int nrhs,
const mxArray *prhs[])
22 nargchk(nrhs>=3 && (nrhs%2)==1 && nlhs<=2);
25 vector<MxArray> rhs(prhs, prhs+nrhs);
30 bool centerPrincipalPoint =
false;
31 for (
int i=3; i<nrhs; i+=2) {
32 string key(rhs[i].toString());
34 alpha = rhs[i+1].toDouble();
35 else if (key==
"NewImageSize")
36 newImageSize = rhs[i+1].toSize();
37 else if (key==
"CenterPrincipalPoint")
38 centerPrincipalPoint = rhs[i+1].toBool();
40 mexErrMsgIdAndTxt(
"mexopencv:error",
"Unrecognized option");
43 Mat cameraMatrix(rhs[0].toMat(rhs[0].isSingle() ? CV_32F : CV_64F)),
44 distCoeffs(rhs[1].toMat(rhs[1].isSingle() ? CV_32F : CV_64F));
45 Size imageSize(rhs[2].toSize());;
47 Mat A = getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize,
48 alpha, newImageSize, (nlhs>1 ? &validPixROI : NULL),
49 centerPrincipalPoint);
mxArray object wrapper for data conversion and manipulation.
void nargchk(bool cond)
Alias for input/ouput arguments number check.
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
Main entry called from Matlab.
Global constant definitions.