OpenCV を使用して、Kinect やその他のカメラから点群を記録しています。ポイントクラウドを一緒に同期するには、3D キャリブレーション リグと cv::estimateAffine3D() を使用します。ただし、関数を使用しようとすると、OpenCV はこの奇妙な例外をスローします。
OpenCV Exception: C:\Tools\opencv\modules\core\src\matrix.cpp:1466:
error: (-215) mtype == type0 || (CV_MAT_CN(mtype) == CV_MAT_CN(type0) &&
((1 << type0) & fixedDepthMask) != 0)
例外テキストが私に伝えたいことを理解できず、Google は関連する結果を提供しません。他の誰かがその問題について私よりもよく知っているかもしれません。ありがとうございました!
編集:これは関数への私の呼び出しです:
cv::Mat affine;
std::vector<cv::Point> inliers;
cv::estimateAffine3D(camPoints,objPoints,affine,inliers,5.0,0.96);
ここで、camPoints と objPoints は両方ともstd::vector<cv::Point3f>
型であり、camPoints は findChessboardCorners が返す (3D カメラ空間に再投影された) コーナーであり、objPoints はオブジェクト空間内の同じコーナーを示す単純なベクトルです。この場合、内容は次のようになります: (0,0,0 ),(40,0,0),(80,0,0),...,(0,40,0),(40,40,0),(80,40,0)...(0,200) ,0),(40,200,0),(80,200,0)