struct calibrateCameraRetval calibrateCamera( struct TensorArray objectPoints, struct TensorArray imagePoints, struct SizeWrapper imageSize, struct TensorWrapper cameraMatrix, struct TensorWrapper distCoeffs, struct TensorArray rvecs, struct TensorArray tvecs, int flags, struct TermCriteriaWrapper criteria) { struct calibrateCameraRetval result; std::vector<MatT> intrinsics(2); std::vector<cv::Mat> rvecs_vec, tvecs_vec; intrinsics[0] = cameraMatrix.toMatT(); intrinsics[1] = distCoeffs.toMatT(); rvecs_vec = rvecs.toMatList(); tvecs_vec = tvecs.toMatList(); result.retval = cv::calibrateCamera(objectPoints.toMatList(), imagePoints.toMatList(), imageSize, intrinsics[0], intrinsics[1], rvecs_vec, tvecs_vec, flags, criteria); new(&result.intrinsics) TensorArray(intrinsics); std::vector<MatT> rvecs_vecT = get_vec_MatT(rvecs_vec), tvecs_vecT = get_vec_MatT(tvecs_vec); new(&result.rvecs) TensorArray(rvecs_vecT); new(&result.tvecs) TensorArray(tvecs_vecT); return result; }
struct TensorArray EM_getCovs(struct EMPtr ptr) { std::vector<cv::Mat> vec; ptr->getCovs(vec); std::vector<MatT> retval = get_vec_MatT(vec); return TensorArray(retval); }
struct TensorArrayPlusBool imreadmulti(const char *filename, int flags) { TensorArrayPlusBool retval; std::vector<cv::Mat> mats; retval.val = cv::imreadmulti(filename, mats, flags); std::vector<MatT> matsT = get_vec_MatT(mats); new (&retval.tensors) TensorArray(matsT); return retval; }