Marcadores Aruco com openCv, obtém as coordenadas dos cantos 3d?
Estou detectando um marcador Aruco impresso usando o opencv 3.2:
aruco::estimatePoseSingleMarkers(corners, markerLength, camMatrix, distCoeffs, rvecs,tvecs);
isso retorna um vetor de conversão e rotação para o marcador. O que eu preciso são as coordenadas 3d para cada canto do marcador.
Como eu sei o comprimento do marcador, eu poderia fazer algo como
corner1 = tvecs[0] - markerlength /2;
corner2 = tvecs[0] + markerlength /2;
....
Mas existe uma maneira melhor? Ou uma função existente? Para resumir, eu tenho:
um ponto 3d no centro de um 2d quadrado.
o comprimento dos lados desse quadrado.
o valor de rotação do quadrado.
Como posso encontrar as coordenadas 3d dos cantos?