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?

questionAnswers(2)

yourAnswerToTheQuestion