Błąd kompilacji w CV_MAT_ELEM
W wyniku wywołania metody estimateRigidTransform () otrzymuję obiekt cv :: Mat o nazwie „trans”. Aby odzyskać zawartą w nim macierz, próbuję uzyskać dostęp do jego elementów w ten sposób:
for (i=0; i<2; i++) for (j=0; j<3; j++)
{
mtx[j][i]=CV_MAT_ELEM(trans,double,i,j);
}
Niestety z VS2010 otrzymuję błąd kompilatora
error C2228: left of '.ptr' must have class/struct/union
dla linii z CV_MAT_ELEM. Kiedy rozwijam to makro, znajduję coś takiego
(mat).data.ptr + (size_t)(mat).step*(row) + (pix_size)*(col))
Kiedy usuwam „.ptr” za (mat) .dane, kompiluje się. Ale nie wyobrażam sobie, że to rozwiązanie (lub nie wyobrażam sobie, że jest to błąd i tylko ja to zauważyłem). Więc co tu może być nie tak?
Dzięki!