19 void mexFunction(
int nlhs, mxArray *plhs[],
int nrhs,
const mxArray *prhs[])
22 nargchk(nrhs>=2 && (nrhs%2)==0 && nlhs<=2);
25 vector<MxArray> rhs(prhs, prhs+nrhs);
28 int flags = cv::CALIB_CB_ADAPTIVE_THRESH + cv::CALIB_CB_NORMALIZE_IMAGE;
29 for (
int i=2; i<nrhs; i+=2) {
30 string key(rhs[i].toString());
31 if (key ==
"AdaptiveThresh")
32 UPDATE_FLAG(flags, rhs[i+1].toBool(), cv::CALIB_CB_ADAPTIVE_THRESH);
33 else if (key ==
"NormalizeImage")
34 UPDATE_FLAG(flags, rhs[i+1].toBool(), cv::CALIB_CB_NORMALIZE_IMAGE);
35 else if (key ==
"FilterQuads")
36 UPDATE_FLAG(flags, rhs[i+1].toBool(), cv::CALIB_CB_FILTER_QUADS);
37 else if (key ==
"FastCheck")
38 UPDATE_FLAG(flags, rhs[i+1].toBool(), cv::CALIB_CB_FAST_CHECK);
40 mexErrMsgIdAndTxt(
"mexopencv:error",
41 "Unrecognized option %s",key.c_str());
45 Mat image(rhs[0].toMat(CV_8U));
46 Size patternSize(rhs[1].toSize());
47 vector<Point2f> corners;
48 bool ok = findChessboardCorners(image, patternSize, corners, flags);
#define UPDATE_FLAG(NUM, TF, BIT)
set or clear a bit in flag depending on bool value
mxArray object wrapper for data conversion and manipulation.
void nargchk(bool cond)
Alias for input/ouput arguments number check.
Global constant definitions.
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
Main entry called from Matlab.