Aruco函数估计posesinglemarkers()误差
Aruco Function estimatePoseSingleMarkers() Error
我有一个问题运行以下代码:
Mat cameraMatrix, distCoeffs;
cameraMatrix = (Mat1f(3, 3) << 462.71, 0, 338.630, 0, 465.97, 177.780, 0, 0, 1);
distCoeffs = (Mat1f(4, 1) << 0.133013, -0.322199, -0.001524, 0.004866);
//skip
Mat color(Size(color_information.width, color_information.height), CV_8UC3, (void*)color_data.planes[0], color_data.pitches[0] / sizeof(uchar));
Mat imageCopy;
double tick = (double)getTickCount();
vector<int>ids;
vector<vector<Point2f>>corners, rejected;
vector<Mat>rvecs, tvecs;
aruco::detectMarkers(color, dictionary, corners, ids, detectorParams, rejected);
double currentTime = ((double)getTickCount() - tick) / getTickFrequency();
// draw results
color.copyTo(imageCopy);
if (ids.size() > 0)
{
aruco::drawDetectedMarkers(imageCopy, corners, ids);
vector<Mat>rvecs, tvecs;
estimatePoseSingleMarkers(corners, 20, cameraMatrix, distCoeffs, rvecs, tvecs);
for (int i = 0; i<ids.size(); i++)
drawAxis(imageCopy, cameraMatrix, distCoeffs, rvecs[i], tvecs[i],0.1);
}
问题是该程序执行到estimatePoseSingleMarkers(corners, 20, cameraMatrix, distCoeffs, rvecs, tvecs);
我收到了一个错误消息,喜欢以下内容: OpenCV Error: Assertion failed (0 <= i && i < (int)v.size()) in cv::_InputArray::getMat_, file C:opencv-3.0sourceopencvmodulescoresrcmatrix.cpp, line 1253
是由错误的变量格式引起的吗?(cameramartix&amp; distCoeffs)
我需要一些帮助来弄清楚出了什么问题。谢谢。
请尝试distCoeffs =(Mat1f(5,1)&lt;&lt; 0.133013,-0.322199,-0.001524,0.004866,0.0);
这是很久以前发布的,所以我希望您找到解决方法。
我相信,如果您要遵循教程,那么您的问题是:
vector<Mat>rvecs, tvecs;
它需要是:
vector<Vec3d>rvecs, tvecs;
那就是我的。我希望这会有所帮助。
相关文章:
- 为什么在浮点中从大到小会引入更多的误差
- 基于相邻元素 c++ 的分段误差范围的循环
- QImage::p ixel 和 QImage::setPixel 坐标超出范围误差
- 将误差线添加到 VTK 二维散点图
- 动态矩阵特征分解过程中的误差
- 转换为非标量误差是什么意思?我该如何解决?
- 特征误差:INVALID_MATRIX_PRODUCT乘向量和矩阵
- 使用不同参数匹配器的同一方法ON_CALL AND EXPECT_CALL会产生饱和和活动误差
- boost odeint 中的受控误差步进器是否支持复杂的数据类型?
- 此外,在计算大斐波那契数时存在精度误差
- C++17中不定参数函数的误差
- 多态性中独立类的基本误差.C++
- 犰狳函数的不同最小二乘误差
- 在 qt 中的绘图中拖动误差线
- variadic函数和折叠表达:试图在Visual Studio 2017中编译时致命误差
- 在Cython中使用移动方法时的汇编误差
- variadic模板代码中的GCC VS MSVC编译误差
- CMAKE和CUDA的权限误差
- OPENCV C 中的分割故障误差
- ROS中未定义的参考误差到OpenCV图像转换器