我正在尝试使用opencv 3.0运行rgbdodometry示例。
https://github.com/kipr/opencv/blob/master/samples/cpp/rgbdodometry.cpp我在这里得到一个异常错误:(第46行)
static void warpImage(const Mat& image, const Mat& depth, const Mat& Rt, const Mat& cameraMatrix, const Mat& distCoeff, Mat& warpedImage)
perspectiveTransform(cloud, transformedCloud, Rt);
Assertion failed <scn +="" 1="=" m.cols=""> in cv::perspectiveTransform. file matmul.cpp, line 2125
似乎Rt Mat保持空,其中perspectiveTransform期望一个3 x 3。我正在使用样本中的代码,以及样本文件夹中的图像。
这是怎么回事?我该怎么补救呢?
这是因为Mat Rt没有填满。由于这一行在opencv 3中失败
bool isFound = cv::RGBDOdometry(Rt, Mat(),
grayImage0, depthFlt0, Mat(),
grayImage1, depthFlt1, Mat(),
cameraMatrix, minDepth, maxDepth, maxDepthDiff,
iterCounts, minGradMagnitudes, transformationType);
它需要添加rgbd::RGBDOdometry命名空间,但是当我添加它时,它无法编译。我已经回到2.4,它运行得很好。