EstimatorRigidTransform() への呼び出しの結果として、「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」を削除すると、コンパイルされます。しかし、それが解決策であるとは想像できません (または、それがバグであるとは想像できず、それに気付いたのは私だけです)。では、ここで実際に何が間違っているのでしょうか?
ありがとう!