我正在使用OpenCV記錄來自Kinect和其他相機的點雲。要同步點雲,我想使用3D校準裝備和cv :: estimateAffine3D()。然而,OpenCV的我拋出這個陌生的異常,當我嘗試使用功能:OpenCV:估計Affine3D引發難以辨認的異常
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)
我想不通的異常文本想告訴我什麼,谷歌沒有給出相關結果,也許別人知道比我多就此而言。謝謝!
編輯:這是我的調用函數:
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)
這表明提供的參數有問題,最有可能是OutputArrays之一。你能否顯示你的代碼(調用cv :: estimateAffine3D包括所有使用的變量)。 – Niko
是的,我用這些信息編輯了問題。 – QuantumFlux
我認爲「inliers」不是作爲點報告的,而是作爲它們各自的索引,所以你應該嘗試'std :: vector inlier;'而不是。 –
Niko