| import cv2 | |
| import numpy as np | |
| def render_env_video(env, states, actions=None): | |
| observations = states | |
| imgs = list() | |
| for i in range(len(observations)): | |
| state = observations[i] | |
| env.set_state(state) | |
| if i == 0: | |
| env.set_state(state) | |
| img = env.render() | |
| # draw action | |
| if actions is not None: | |
| action = actions[i] | |
| coord = (action / 512 * 96).astype(np.int32) | |
| cv2.drawMarker(img, coord, | |
| color=(255,0,0), markerType=cv2.MARKER_CROSS, | |
| markerSize=8, thickness=1) | |
| imgs.append(img) | |
| imgs = np.array(imgs) | |
| return imgs | |