U
    a+d                     @   s.   d dl Zd dlmZ d dlmZ dddZdS )    N)	ImageClip  Fc                 C   s  |  d}| js|  } | j d}tj|dddddf \}}g }t|D ]H}||d |d f  dkrvqT||d |d f j|krqT|	| qTt
t|dd d}	g }
t|	D ]\}\}\}}t|jd |jd }t|jd |jd }|||f }|||f }||d k|||f  }t|||f }t|dd	|_t|j|jf|_|
	| q|rddlm} td
|  |d\}}|d d |d | |d jt|gdd |d g  |  |
S )z 
    Returns a list of ImageClips representing each a separate object on
    the screen.
        
    rem_thr : all objects found with size < rem_Thr will be
         considered false positives and will be removed
    
    r   N   g?c                 S   s   | d d j S )Nr   )start)s r   B/tmp/pip-unpacked-wheel-0yp4gafk/moviepy/video/tools/segmenting.py<lambda>"       zfindObjects.<locals>.<lambda>)keyT)Zismaskzfound %d objects   offZnearest)interpolation)Z	get_framemaskZadd_maskndiZmeasurementslabelZfind_objectsZmeansizeappendsorted	enumerateslicer   stopr   nparrayZ	screenposZmatplotlib.pyplotZpyplotprintZsubplotsZaxisZimshowrangeZ
set_yticksshow)ZclipZrem_thrpreviewimager   ZlabelledZnum_featuresZsliceseZisliceslettersiindZsyZsxletterZ	labletterZ
maskletterZpltZfigZaxr   r   r   findObjects   sD    

"r$   )r   F)Znumpyr   Zscipy.ndimageZndimager   Zmoviepy.video.VideoClipr   r$   r   r   r   r   <module>   s   