首页 > 解决方案 > 如何通过opencv cv :: calibrateCamera通过索引返回访问值?

问题描述

我使用opencv函数cv::calibrateCamera来校准我的相机,我想像这样访问索引返回的值cameraMatrix.at<float>(2,2),但是失败了!代码和结果是这样的:

cv::Mat cameraMatrix = cv::Mat(3, 3, CV_32F);
cv::Mat distCoeffs = cv::Mat(1, 5, CV_32F);
cv::Mat rvecs;
cv::Mat tvecs;
double reprojectError;
reprojectError = cv::calibrateCamera(pointsOnBoard, pointsOnImg, imgSize, 
                                         cameraMatrix, distCoeffs, rvecs, tvecs);
std::cout << "Intrinsic matrix:" << std::endl;
std::cout << cameraMatrix << std::endl;
std::cout << "Value at [2,2]: " << cameraMatrix.at<float>(2,2) << std::endl;

输出是这样的: 输出

我已经尝试了一些这样的代码,一切都很好!

float tmp[] = {1,2,3,4,5,6,7,8,9};
cv Mat test = Mat(3,3,CV_32F,tmp);
std::cout << "Value at [2,2]: " << test.at<float>(2,2) << std::endl;

标签: c++opencv

解决方案


推荐阅读