
    Wpf$                         d Z ddlZddlZddlZddlZddlmZ ddlZddlZ	ddl
ZddlmZ ddlmZ dZej        Zej        Z G d dej                  Zed	k    r ej                     dS dS )
z5Tests for mediapipe.python._framework_bindings.image.    N)absltest)image)image_framez#mediapipe/python/solutions/testdatac                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )	ImageTestc                    t          j        dd          t          j        dd          }}t          j        t          j                             d||dft          j                  t          j                  }d|d<   t          t          j
        |          }|                     t	          j        ||                                                     |                     t          d          5  t!          |||d	f                    d d d            n# 1 swxY w Y   |                     t          d
          5  t!          |||f                    d d d            n# 1 swxY w Y   |                     d|d                    d S )N   d      sizedtype*   )   r   image_formatdataindex dimension mismatch   out of bounds)random	randrangecv2cvtColornprandintuint8COLOR_RGB2GRAYImageImageFormatGRAY8
assertTruearray_equal
numpy_viewassertRaisesRegex
IndexErrorprintassertEqual)selfwhmatgray8_images        [/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/mediapipe/python/image_test.py"test_create_image_from_gray_cv_matz,ImageTest.test_create_image_from_gray_cv_mat(   s   As##V%5a%=%=qA
,
	(!Q"(CC C CI[%6SAAAKOOBN3(>(>(@(@AABBB			
,F	G	G " "K1a !!!" " " " " " " " " " " " " " "			
O	<	<  K1              RT*+++++s$   ,DDD7EE"Ec                 x   t          j        dd          t          j        dd          d}}}t          j        t          j                             d|||ft          j                  t          j                  }d|d<   t          t          j
        |          }|                     t	          j        ||                                                     |                     t          d          5  t!          ||||f                    d d d            n# 1 swxY w Y   |                     d|d                    d S )	Nr	   r
   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   COLOR_RGB2BGRr   r    SRGBr"   r#   r$   r%   r&   r'   r(   )r)   r*   r+   channelsr,   	rgb_images         r.   !test_create_image_from_rgb_cv_matz+ImageTest.test_create_image_from_rgb_cv_mat6   sR   %a--v/?3/G/G(qA
,
	(!Q)9JJ C CL;#3#>>>IOOBN3	(<(<(>(>??@@@			
O	<	< ' 'IaHn%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' 'R7+,,,,,   .DDDc                 x   t          j        dd          t          j        dd          d}}}t          j        t          j                             d|||ft          j                  t          j                  }d|d<   t          t          j
        |          }|                     t	          j        ||                                                     |                     t          d          5  t!          ||||f                    d d d            n# 1 swxY w Y   |                     d|d                    d S )	Nr	   r
     r   r   r1   r   r   )r   r   r   r   r   r   uint16r2   r   r    SRGB48r"   r#   r$   r%   r&   r'   r(   )r)   r*   r+   r4   r,   rgb48_images         r.   #test_create_image_from_rgb48_cv_matz-ImageTest.test_create_image_from_rgb48_cv_matB   sR   %a--v/?3/G/G(qA
,
	)1a*:")LL C CL[%7cBBBKOOBN3(>(>(@(@AABBB			
O	<	< ) )K1h'((() ) ) ) ) ) ) ) ) ) ) ) ) ) )RW-.....r7   c                    t          j        dd          t          j        dd          }}t          j                            t
          j                             d||ft
          j                  d          }t          t          j	        t          j
        |                    }|                     t          j        t          j
        |          |                                                     |                     t          d          5  t!          |||df                    d d d            n# 1 swxY w Y   |                     t          d	          5  t!          |||f                    d d d            d S # 1 swxY w Y   d S )
Nr	   r
   r   r   Lr   r   r   r   )r   r   PILr   	fromarrayr   r   r   r    r!   asarrayr"   r#   r$   r%   r&   r'   )r)   r*   r+   imgr-   s        r.   %test_create_image_from_gray_pil_imagez/ImageTest.test_create_image_from_gray_pil_imageN   s   As##V%5a%=%=qA
)


	(!Qrx@@#G GC[%6RZ__MMMKOOBN2:c??K4J4J4L4LMMNNN			
,F	G	G " "K1a !!!" " " " " " " " " " " " " " "			
O	<	<  K1                 s$   D00D47D4E;;E?E?c                    t          j        dd          t          j        dd          d}}}t          j                            t
          j                             d|||ft
          j                  d          }t          t          j	        t          j
        |                    }|                     t          j        t          j
        |          |                                                     |                     t          d          5  t!          ||||f                    d d d            d S # 1 swxY w Y   d S )Nr	   r
   r   r   RGBr   r   )r   r   r@   r   rA   r   r   r   r    r3   rB   r"   r#   r$   r%   r&   r'   )r)   r*   r+   r4   rC   r5   s         r.   $test_create_image_from_rgb_pil_imagez.ImageTest.test_create_image_from_rgb_pil_imageY   sJ   %a--v/?3/G/G(qA
)


	(!Q)9JJ C ;#3"*S//JJJIOOBN2:c??I4H4H4J4JKKLLL			
O	<	< ' 'IaHn%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   D44D8;D8c                    t          j        dd          t          j        dd          d}}}t          j                            t
          j                             d|||ft
          j                  d          }t          t          j	        t          j
        |                              t
          j                            }|                     t          j        t          j
        |          |                                                     |                     t           d          5  t#          |d	                    d d d            d S # 1 swxY w Y   d S )
Nr	   r
      r9   r   RGBAr   r   )  rK   rK   )r   r   r@   r   rA   r   r   r:   r    SRGBA64rB   astyper"   r#   r$   r%   r&   r'   )r)   r*   r+   r4   rC   
rgba_images         r.   'test_create_image_from_rgba64_pil_imagez1ImageTest.test_create_image_from_rgba64_pil_imagec   s_   %a--v/?3/G/G(qA
)


	)1a*:")LL C  (Z__##BI..0 0 0J 	OOBN2:c??J4I4I4K4KLLMMM			
O	<	< * *J'()))* * * * * * * * * * * * * * * * * *s   +EEEc                 j   t          j        dd          t          j        dd          d}}}t          j        t          j                             d|||ft          j                  t          j                  }t          t          j
        |          }|                                }|                     t	          j        ||                                                     |                     t          d          5  d|d<   d d d            n# 1 swxY w Y   t	          j        |          }d|d<   d S )	Nr	   r
   r   r   r   z#assignment destination is read-onlyr   )r   r   r   )r   r   r   r   r   r   r   r2   r   r    r3   r$   r"   r#   r%   
ValueErrorcopy)r)   r*   r+   r4   r,   r5   output_ndarraycopied_ndarrays           r.   test_image_numby_viewzImageTest.test_image_numby_viewo   sT   %a--v/?3/G/G(qA
,
	(!Q)9JJ C ;#3#>>>I))++NOOBN3	(<(<(>(>??@@@ 
		
 E
G 
G " " !nW" " " " " " " " " " " " " " " W^,,NN7s   =DDDc           	         t          j        dd          t          j        dd          }}d\  }}t          j        t          j                             d|||ft          j                  t          j                  }t          t          j
        t	          j        ||| || f                             }|                     t	          j        ||| || f         |                                                     d S N   r
   )r	   
   r   r   r   )r   r   r   r   r   r   r   r   r   r    r!   ascontiguousarrayr"   r#   r$   )r)   r*   r+   r4   offsetr,   r-   s          r.   test_cropped_gray8_imagez"ImageTest.test_cropped_gray8_image   s   B$$f&6r3&?&?qAHf
,
	(!Q)9JJ C  &!#ffWnffWn&D"EFFH H HK 	OO
s66'>66'>9:"--//	1 	12 2 2 2 2    c           
         t          j        dd          t          j        dd          }}d\  }}t          j        t          j                             d|||ft          j                  t          j                  }t          t          j
        t	          j        ||| || d d f                             }|                     t	          j        ||| || d d f         |                                                     d S rW   )r   r   r   r   r   r   r   r2   r   r    r3   rZ   r"   r#   r$   )r)   r*   r+   r4   r[   r,   r5   s          r.   test_cropped_rgb_imagez ImageTest.test_cropped_rgb_image   s   B$$f&6r3&?&?qAHf
,
	(!Q)9JJ C  %!#ffWnffWnaaa&G"HIIK K KI 	OO
s66'>66'>111<= ++--	/ 	/0 0 0 0 0r]   c                    d\  }}t           j                            d||dft           j                  }t	          t
          j        |          }|                     |                                           t          j
        |          }|                     t          j        ||                                                     |                                }|                     t          j
        |          |dz              |                                }|                     t          j
        |          |dz              ~~t          j                     |                     t          j
        |          |           d S )N)i  i  r   r	   r   r   r   r   )r   r   r   r   r   r    r3   r"   is_contiguoussysgetrefcountr#   r$   r(   gccollect)r)   r*   r+   r,   r5   initial_ref_countnp_viewnp_view2s           r.   *test_image_numpy_view_with_contiguous_dataz4ImageTest.test_image_numpy_view_with_contiguous_data   sF   DAq
)

HAq!9BH

E
EC;#3#>>>IOOI++--...	22OOBN3	(<(<(>(>??@@@ ""$$GS_Y//1BQ1FGGG##%%HS_Y//1BQ1FGGGJLLL 	S_Y//1BCCCCCr]   c                 ~   d\  }}t           j                            d||dft           j                  }t	          t
          j        |          }|                     |                                           t          j
        |          }|                     t          j        ||                                                     |                                }|                     t          j
        |          |           ~t          j                     |                     t          j
        |          |           d S )N)i  i  r   r	   r   r   )r   r   r   r   r   r    r3   assertFalsera   rb   rc   r"   r#   r$   r(   rd   re   )r)   r*   r+   r,   r5   rf   rg   s          r.   .test_image_numpy_view_with_non_contiguous_dataz8ImageTest.test_image_numpy_view_with_non_contiguous_data   s   DAq
)

HAq!9BH

E
EC;#3#>>>IY,,..///	22OOBN3	(<(<(>(>??@@@""$$GS_Y//1BCCCJLLLS_Y//1BCCCCCr]   c                    t           j                            t           j                            t                    d          }t          j        |                              t          j	                  }t          j
        |t
          j                  }t          t          j        |          }|                     |j        d           |                     |j        d           |                     |j        d           |                     |j        t          j                   |                     t          j        ||                                                     d S )Nsolutions/testdata/hands.jpgr     ~  r	   )ospathjoindirname__file__r   imreadrM   r   r   r   COLOR_BGR2RGBr   r    r3   r(   widthheightr4   r   r"   r#   r$   )r)   
image_pathr,   r5   s       r.   test_image_create_from_cvmatz&ImageTest.test_image_create_from_cvmat   s   bgooh77<> >J
*Z
 
 
'
'
1
1C
,sC-
.
.C;#3#>>>IY_c***Y%s+++Y'+++Y+[-=>>>OOBN3	(<(<(>(>??@@@@@r]   c                    t           j                            t           j                            t                    d          }t
                              |          }|                     |j        d           |                     |j	        d           | 
                    |j        ddg           | 
                    |j        t          j        t          j        g           d S )Nrn   ro   rp   r	   rI   )rq   rr   rs   rt   ru   r   create_from_filer(   rx   ry   assertInr4   r   r    r3   SRGBA)r)   rz   loaded_images      r.   test_image_create_from_filez%ImageTest.test_image_create_from_file   s    bgooh77<> >J))*55L\'---\(#... 	MM,'!Q000MM!K$4k6G#H    r]   N)__name__
__module____qualname__r/   r6   r=   rD   rG   rO   rU   r\   r_   ri   rl   r{   r    r]   r.   r   r   &   s        , , ,
- 
- 
-
/ 
/ 
/	 	 	' ' '
* 
* 
*      2 2 20 0 0 D D D.D D D
A 
A 
A    r]   r   __main__)__doc__rd   rq   r   rb   absl.testingr   r   numpyr   	PIL.Imager@   $mediapipe.python._framework_bindingsr   r   TEST_IMAGE_PATHr   r    TestCaser   r   mainr   r]   r.   <module>r      s    < ; 				 				  



 ! ! ! ! ! ! 



         7 6 6 6 6 6 < < < < < <7%q q q q q! q q qf z(-///// r]   