B
    $]n
                 @   sF   d dl Z d dlZd dlZd dlmZ G dd dZdd Zdd ZdS )	    N)image_tc               @   sF   e Zd ZdddZdd Zdd	 Zd
d Zdd Zdd Zdd Z	dS )
FrameTimer<      
   c             C   s4   d| _ d| _d| _|| _|| _td| _d| _d S )Nr   )r   r   )	framesfps_timelog_timelog_ratefpsnpzerosfps_samplesZfps_samples_index)selfr   r
   r    r   KX:\800139.EyeRIS\EyeRIS.Software\python_tools\lcmlog-image-overlay\tools.py__init__   s    zFrameTimer.__init__c             C   s4   |  j d7  _ tj| jddd| _t | jd< d S )Nr   r   )axis)r   r   rollr   time)r   r   r   r   	new_frame!   s    zFrameTimer.new_framec             C   s>   | j dd | j dd  }t|}|dkr6d| S dS d S )Nr   r   r   g        )r   r   mean)r   Zfps_estr   r   r   estimate_fps&   s
    
zFrameTimer.estimate_fpsc             C   s   t   | _d S )N)r   r   )r   r   r   r   	fps_start.   s    zFrameTimer.fps_startc             C   s   t   | _d S )N)r   r	   )r   r   r   r   	log_start1   s    zFrameTimer.log_startc             C   s4   y"t d| j t   | j   W n   Y nX d S )Nr   )r   sleepr   r   )r   r   r   r   	fps_sleep4   s    "zFrameTimer.fps_sleepc             C   sH   t   | j d| j krDtdt| j d t|    t   | _d S )Nr   zFrames: z, FPS: )r   r	   r
   printstrr   r   )r   r   r   r   log:   s     zFrameTimer.logN)r   r   r   )
__name__
__module____qualname__r   r   r   r   r   r   r!   r   r   r   r   r      s   
	r   c             C   sr   t t d | _|jd | _|jd | _tdkrP|d d d d df  | _n
| | _t	| j| _
tj| _| S )Ni  r   r   mono)intr   utimeshapewidthheight
PIXEL_TYPEtobytesdatalensizer   PIXEL_FORMAT_RGBpixelformat)msgframer   r   r   frame_2_msgE   s    
r4   c             C   sT   t j| jt jd}| jtjkr"d}| jtjkr2d}t j|| j	| j
|fd}|| jfS )N)dtype   r   )newshape)r   
frombufferr-   uint8r1   r   r0   PIXEL_FORMAT_GRAYreshaper*   r)   r'   )r2   r3   Zbytes_per_pixelr   r   r   msg_2_frameW   s    r<   )	cv2r   numpyr   imager   r   r4   r<   r   r   r   r   <module>   s   /