U
    ɇd                     @   s8   d dl Z d dlZd dlmZ dd Zdd Zdd ZdS )	    N)Pathc              	   C   s8  t d}i }ddddd}t|d}dd	d
ddddg}|D ]}dt| }i |d| < ||  D ]\}}	|	d }
d}|
D ]}|tt| }qi }t|	d |d< t|	d |d< t|	d |d< t|	d |d< t|	d |d< t|	d |d< || |d< ||d|  |< qjq@W 5 Q R X |S )Nz
cameras.h5F   in   i)Z54138969Z55011271Z58860488Z60457274zr+               	      subjectSName RTcfkpazimuth)	r   h5pyFilestritemschrintnparray)fileZcam_fileZ
cam_paramsr   r   Zsubjectsssub_paramsnamekeyr   val r'   7/home/daniela/catkin_ws/src/hpe/scripts/utils/camera.pyload_camera_params   s.     r)   c                 C   sJ   | j d dkst| j }|  dj}t|j|| }|j|}|S )z
    Args:
        pose: numpy array with shape (-1, 3)
        R: numpy array with shape (3, 3)
        T: numyp array with shape (3, 1)
       r*   r+   )shapeAssertionErrorcopyreshaper   r   matmul)poser   r   original_shape
pose_worldpose_camr'   r'   r(   world2camera;   s    r6   c                 C   st   t | j | jd dkst| j}|  dj}t |j t||}t |j t||j|j }||}|S )z
    Args:
        pose: numpy array with shape (..., 3)
        R: numpy array with shape (3, 3)
        T: numyp array with shape (3, 1)
    r*   r+   r,   )printr-   r.   r/   r0   r   r   r1   )r2   r   r   r3   r5   Zpose_world_testr4   r'   r'   r(   camera2worldJ   s    



r8   )r   numpyr   pathlibr   r)   r6   r8   r'   r'   r'   r(   <module>   s
   6