我有一个3x3单应性矩阵,该矩阵是使用findHomography()函数计算的。
我将其存储在cv::Mat矩阵中。
我正在尝试使用以下代码进行元素访问
float cvHomography::accessElements(const cv::Mat& aCvMat)
{
//cout << aCvMat << endl;
const float* Mi;
for( int i = 0; i < aCvMat.rows; i++){
Mi = aCvMat.ptr<float>(i);
for( int j = 0; j < aCvMat.cols; j++){
cout << Mi[j] << endl;
}
}
}
上面没有从单应矩阵返回正确的值。
我已经搜索了文档,教程和Google,但老实说我看不到我在做什么错。
最佳答案
这应该可以工作(如果您确定图像类型为CV_64F):
void cvHomography::accessElements(const cv::Mat& aCvMat)
{
// assert aCvMat.type() == CV_64F
for( int i = 0; i < aCvMat.rows; i++){
for( int j = 0; j < aCvMat.cols; j++){
cout << aCvMat.at<double>(i,j) << endl;
}
}
}
如果您只想显示图像元素,则std::ostream的重载运算符<