ArUco の公式のcalibration_camera.cppサンプルに基づく次のコードを実行すると問題が発生します。
cv::aruco::Board arucoBoard;
cv::Mat cameraMatrix, distCoeffs;
cv::Size imgSize;
std::vector< std::vector< cv::Point2f>> allCornersConcatenated;
std::vector< int > allIdsConcatenated;
std::vector< int > markerCounterPerFrame;
std::vector<cv::Mat> rvecs, tvecs;
double repError = cv::aruco::calibrateCameraAruco(allCornersConcatenated,
allIdsConcatenated, markerCounterPerFrame,
arucoBoard, imgSize, cameraMatrix, distCoeffs, rvecs, tvecs, 0);
問題は、Visual Studio が「オーバーロードされた関数のインスタンスが引数リストと一致しない」と文句を言うことですが、引数の型が公式サンプルの引数の型と一致するため、理由がわかりません。次のメッセージが表示されます。
no instance of overloaded function "cv::aruco::calibrateCameraAruco" matches the argument list. argument types are:
(std::vector<std::vector<cv::Point2f, std::allocator<cv::Point2f>>, std::allocator<std::vector<cv::Point2f, std::allocator<cv::Point2f>>>>, std::vector<int, std::allocator<int>>, std::vector<int, std::allocator<int>>, cv::aruco::Board, cv::Size, cv::Mat, cv::Mat, std::vector<cv::Mat, std::allocator<cv::Mat>>, std::vector<cv::Mat, std::allocator<cv::Mat>>, int)
何が問題なのかを理解するために、助けが必要です。ありがとうございました。