访问openCV单应矩阵中的元素

时间:2014-03-25 14:02:20

标签: c++ opencv matrix element homography

我有一个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;
        }
    }
}

以上不会从单应矩阵返回正确的值。 我搜索了文档,教程和谷歌,老实说,我看不出我做错了什么。

1 个答案:

答案 0 :(得分:3)

这应该有效(如果你确定图像的类型是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;
        }
    }
}

也是一个重载的运算符&lt;&lt;对于std :: ostream,如果你只想显示图像元素,可以使用cv :: Mat。