def render(self, markers):
for marker in markers:
rvecs, tvecs, marker_rotation, marker_name = marker
# build view matrix
rmtx = cv2.Rodrigues(rvecs)[0]
view_matrix = np.array([[rmtx[0][0],rmtx[0][1],rmtx[0][2],tvecs[0]],
[rmtx[1][0],rmtx[1][1],rmtx[1][2],tvecs[1]],
[rmtx[2][0],rmtx[2][1],rmtx[2][2],tvecs[2]],
[0.0 ,0.0 ,0.0 ,1.0 ]])
view_matrix = view_matrix * self.INVERSE_MATRIX
view_matrix = np.transpose(view_matrix)
# load view matrix and draw cube
glPushMatrix()
glLoadMatrixd(view_matrix)
if marker_name == MARKER_ONE:
self.marker_one_textures[TEXTURE_FRONT] = cv2.flip(self._get_video_frame(), 0)
self._draw_cube(marker_rotation, self.marker_one_textures)
elif marker_name == MARKER_TWO:
self._draw_cube(marker_rotation, self.marker_two_textures)
glColor3f(1.0, 1.0, 1.0)
glPopMatrix()
评论列表
文章目录