作为调用estimateRigidTransform() 的结果,我得到一个名为“trans”的cv::Mat 对象。为了检索其包含的矩阵,我尝试以这种方式访问其元素:
for (i=0; i<2; i++) for (j=0; j<3; j++)
{
mtx[j][i]=CV_MAT_ELEM(trans,double,i,j);
}
不幸的是,使用 VS2010 我得到一个编译器错误
error C2228: left of '.ptr' must have class/struct/union
对于带有 CV_MAT_ELEM 的行。当我打开这个宏时,我发现类似
(mat).data.ptr + (size_t)(mat).step*(row) + (pix_size)*(col))
当我删除 (mat).data 后面的“.ptr”时,它会编译。但我无法想象这是解决方案(或者无法想象这是一个错误,我是唯一注意到它的人)。那么这里真的有什么问题呢?
谢谢!