B
    vx]O                 @   s^   d dl Z d dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZ G dd dZdS )    N)KDTree)	label2rgb)labelregionpropsc               @   sF   e Zd ZdddZdd Zdd Zd	d
gfddZd	d
gfddZdS )
DepthImageXYZAFc             C   s8   g | _ d | _|| _| jd| _|| _|| _|   d S )NZ)depth_images
depth_masktypesfindz_indexfile_prefixdebugload)selfr   r   r    r   =X:\800139.EyeRIS\EyeRIS.Software\EyeRISConvert\depth_image.py__init__   s    zDepthImage.__init__c             C   s>   x8| j D ].}| jd | d }| jtt| qW d S )Nz
-DepthMap-z.tiff)r   r   r	   appendnpflipudimageioimread)r   t	file_namer   r   r   r      s    zDepthImage.loadc             C   sb   |j | jd j ks&t|| jd j }x*tt| jD ]}| j| | | j|< q6W | j| | _d S )Nr   )shaper	   cv2resizerangelenr   r
   )r   Z
image_maskir   r   r   mask   s
    zDepthImage.maskii  c             C   s~   | j d krP| j| j }|d d |t|< t||d k||d kd| _ | jrxt	dt
| j dd  t  | j S )Nr   d      uint8r
   )i   i      )r
   r	   r   r   isnanlogical_andastyper   r   imshowr   waitKey)r   depth_rangeZtmp_imgr   r   r   get_depth_mask$   s    
$zDepthImage.get_depth_maskc          
   C   s  | j d kr| | t| j }| jrFtdt|| jd d t  g | _	xt
|D ]}|d }g }|t| jd |d d df |d d df f  |t| jd |d d df |d d df f  |t| jd |d d df |d d df f  |t|d d df  | j	| qVW t| j	| _	| j	jd | _| j	jd dk rnd| _d| _nRt| j	| _| j| j	d\| _| _dtj | j t| jd d df d  | _| jrt| jd d df  tj| jd d df dd	 t  | j	S )
Nlabel_image   )imagecoordsr   r$   
   i  )bins)r
   r-   r   r   r   r*   r   r	   r+   point_cloudr   r   r   meanr    arrayr   num_particlesnnstatZ	nn_pointsr   kdtreequeryZnndistpisumprintplthistshow)r   r,   r.   regionr1   pr   r   r   generate_point_cloud.   s8    


666.zDepthImage.generate_point_cloudN)r   F)__name__
__module____qualname__r   r   r"   r-   rC   r   r   r   r   r   	   s
   
	
r   )r   r   numpyr   matplotlib.pyplotpyplotr>   scipy.spatialr   skimage.colorr   skimage.measurer   r   r   r   r   r   r   <module>   s   