在openCV单应矩阵中访问元素



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

上面的方法不能从单应矩阵返回正确的值。我已经搜索了文档、教程和谷歌,老实说,我不知道我做错了什么。

这应该可以工作(如果您确定图像的类型是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与cv::Mat一起工作。

相关内容

  • 没有找到相关文章

最新更新