Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import tensorflow as tf | |
| import numpy as np | |
| def get_translation_t(t): | |
| """Get the translation matrix for movement in t.""" | |
| matrix = [ | |
| [1, 0, 0, 0], | |
| [0, 1, 0, 0], | |
| [0, 0, 1, t], | |
| [0, 0, 0, 1], | |
| ] | |
| return tf.convert_to_tensor(matrix, dtype=tf.float32) | |
| def get_rotation_phi(phi): | |
| """Get the rotation matrix for movement in phi.""" | |
| matrix = [ | |
| [1, 0, 0, 0], | |
| [0, tf.cos(phi), -tf.sin(phi), 0], | |
| [0, tf.sin(phi), tf.cos(phi), 0], | |
| [0, 0, 0, 1], | |
| ] | |
| return tf.convert_to_tensor(matrix, dtype=tf.float32) | |
| def get_rotation_theta(theta): | |
| """Get the rotation matrix for movement in theta.""" | |
| matrix = [ | |
| [tf.cos(theta), 0, -tf.sin(theta), 0], | |
| [0, 1, 0, 0], | |
| [tf.sin(theta), 0, tf.cos(theta), 0], | |
| [0, 0, 0, 1], | |
| ] | |
| return tf.convert_to_tensor(matrix, dtype=tf.float32) | |
| def pose_spherical(theta, phi, t): | |
| """ | |
| Get the camera to world matrix for the corresponding theta, phi | |
| and t. | |
| """ | |
| c2w = get_translation_t(t) | |
| c2w = get_rotation_phi(phi / 180.0 * np.pi) @ c2w | |
| c2w = get_rotation_theta(theta / 180.0 * np.pi) @ c2w | |
| c2w = np.array([[-1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 1]]) @ c2w | |
| return c2w | |