
    uki
                         d Z ddlZddlmZ ddlmZ ddlZddlZddlm	Z
 dZ G d dej                        Zed	k(  r ej                          yy)
z9Tests for mediapipe.python.solutions.selfie_segmentation.    N)absltest)parameterized)selfie_segmentationz#mediapipe/python/solutions/testdatac                       e Zd Zdej                  dej                  fdZd Zd Z ej                  dd      d        Z
y	)
SelfieSegmentationTestframemaskc                 8   t        j                  |t        j                  |fdz  d            }t        j                  j                  t        j                         | j                         j                  d      d   dz         }t        j                  ||       y )N   )axis.z.png)npminimumstackospathjointempfile
gettempdiridsplitcv2imwrite)selfr   r	   r   s       n/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/mediapipe/python/solutions/selfie_segmentation_test.py_drawzSelfieSegmentationTest._draw    sg    JJubhhw{<=E77<<++-twwys/CB/G&/PQDKKe    c           	      6   t        j                         5 }| j                  t        d      5  |j	                  t        j                  dt
        j                        j                  ddd             d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz0Input image must contain three channel rgb data.$   dtyper      )	mp_selfie_segmentationSelfieSegmentationassertRaisesRegex
ValueErrorprocessr   arangeuint8reshape)r   r   s     r   test_invalid_image_shapez/SelfieSegmentationTest.test_invalid_image_shape%   s    		2	2	4 <8K!!
HJ <##IIb)11!Q:	<<< << << <s#   BAB2BB	BBc                 v   t        j                         5 }t        j                  g dt        j                        }|j                  d       |j                  |      }|j                  dz  j                  t              }| j                  t        j                  |      d       d d d        y # 1 sw Y   y xY w)N)d   r.   r   r!         )r$   r%   r   zerosr*   fillr(   segmentation_maskastypeint
assertLessamax)r   r   imageresultsnormalized_segmentation_masks        r   test_blank_imagez'SelfieSegmentationTest.test_blank_image,   s    		2	2	4 @8Khh}BHH5ejjo#++E2g&-&?&?&)'*+16#; #
oobgg:;Q?@ @ @s   BB//B8)generalr   )	landscaper0   c                    t         j                  j                  t         j                  j                  t              d      }t        j                  |      }t        j                  |      5 }|j                  t        j                  |t
        j                              }|j                  dz  j                  t              }| j                  |j!                         |       d d d        y # 1 sw Y   y xY w)Nztestdata/portrait.jpg)model_selectionr/   )r   r   r   dirname__file__r   imreadr$   r%   r(   cvtColorCOLOR_BGR2RGBr3   r4   r5   r   copy)r   r?   
image_pathr8   r   r9   r:   s          r   test_segmentationz(SelfieSegmentationTest.test_segmentation5   s    bggooh757JJJz"E		2	2'
) =,?#++
,,uc//
02g&-&?&?&)'*+16#; #
jj;<= = =s   -A6C,,C5N)__name__
__module____qualname__r   ndarrayr   r,   r;   r   named_parametersrG    r   r   r   r      sM     2:: 
<@ "=!!.2BC
= D
=r   r   __main__)__doc__r   absl.testingr   r   r   numpyr   mediapipe.python.solutionsr   r$   TEST_IMAGE_PATHTestCaser   rH   mainrM   r   r   <module>rV      sR    @ 	 ! & 
  U7"=]33 "=J z(--/ r   