
    Wpf!                         d 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 ej        Zej        Z G d dej                  Zedk    r ej                     dS dS )z;Tests for mediapipe.python._framework_bindings.image_frame.    N)absltest)image_framec                   P    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S )ImageFrameTestc                    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
ImageFrameImageFormatGRAY8
assertTruearray_equal
numpy_viewassertRaisesRegex
IndexErrorprintassertEqual)selfwhmatgray8_image_frames        a/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/mediapipe/python/image_frame_test.py(test_create_image_frame_from_gray_cv_matz7ImageFrameTest.test_create_image_frame_from_gray_cv_mat#   s   As##V%5a%=%=qA
,
	(!Q"(CC C CI"0ALLLOOBN3(9(D(D(F(FGGHHH			
,F	G	G ( (aAg&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (			
O	<	< % %ad#$$$% % % % % % % % % % % % % % %R*4011111s$   ,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_image_frames         r-   'test_create_image_frame_from_rgb_cv_matz6ImageFrameTest.test_create_image_frame_from_rgb_cv_mat1   sR   %a--v/?3/G/G(qA
,
	(!Q)9JJ C CL k.>SIIIOOOBN3(B(B(D(DEEFFF			
O	<	< - -OAq(N+,,,- - - - - - - - - - - - - - -R122222   .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   r0   r   r   )r   r   r   r   r   r   uint16r1   r   r   SRGB48r!   r"   r#   r$   r%   r&   r'   )r(   r)   r*   r3   r+   rgb48_image_frames         r-   )test_create_image_frame_from_rgb48_cv_matz8ImageFrameTest.test_create_image_frame_from_rgb48_cv_mat=   sV   %a--v/?3/G/G(qA
,
	)1a*:")LL C CL"0BMMMOOBN3(9(D(D(F(FGGHHH			
O	<	< / /aHn-.../ / / / / / / / / / / / / / /R*7344444r6   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   PILImage	fromarrayr   r   r   r   r   r    asarrayr!   r"   r#   r$   r%   r&   )r(   r)   r*   imgr,   s        r-   +test_create_image_frame_from_gray_pil_imagez:ImageFrameTest.test_create_image_frame_from_gray_pil_imageI   s   As##V%5a%=%=qA
)


	(!Qrx@@#G GC" &RZ__> > >OO
rz#(9(D(D(F(FGGI I I			
,F	G	G ( (aAg&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (			
O	<	< % %ad#$$$% % % % % % % % % % % % % % % % % %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   r   r2   rB   r!   r"   r#   r$   r%   r&   )r(   r)   r*   r3   rC   r4   s         r-   *test_create_image_frame_from_rgb_pil_imagez9ImageFrameTest.test_create_image_frame_from_rgb_pil_imageV   s[   %a--v/?3/G/G(qA
)


	(!Q)9JJ C ! %BJsOO= = =OOO
rz#(B(B(D(DEEG G G			
O	<	< - -OAq(N+,,,- - - - - - - - - - - - - - - - - -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	      r8   r   RGBAr   r   )  rK   rK   )r   r   r?   r@   rA   r   r   r9   r   r   SRGBA64rB   astyper!   r"   r#   r$   r%   r&   )r(   r)   r*   r3   rC   rgba_image_frames         r-   -test_create_image_frame_from_rgba64_pil_imagez<ImageFrameTest.test_create_image_frame_from_rgba64_pil_imageb   sl   %a--v/?3/G/G(qA
)


	)1a*:")LL C " (Z__##BI..0 0 0 	OO
rz#(8(C(C(E(EFFH H H			
O	<	< 0 0-.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   +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   r1   r   r   r2   r#   r!   r"   r$   
ValueErrorcopy)r(   r)   r*   r3   r+   r4   output_ndarraycopied_ndarrays           r-   test_image_frame_numby_viewz*ImageFrameTest.test_image_frame_numby_viewo   sT   %a--v/?3/G/G(qA
,
	(!Q)9JJ C !k.>SIIIO$//11NOOBN3(B(B(D(DEEFFF 
		
 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*   r3   offsetr+   r,   s          r-   test_cropped_gray8_imagez'ImageFrameTest.test_cropped_gray8_image   s   B$$f&6r3&?&?qAHf
,
	(!Q)9JJ C # &!#ffWnffWn&D"EFFH H H 	OO
s66'>66'>9:(3355	7 	78 8 8 8 8    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   r1   r   r   r2   rZ   r!   r"   r#   )r(   r)   r*   r3   r[   r+   r4   s          r-   test_cropped_rgb_imagez%ImageFrameTest.test_cropped_rgb_image   s   B$$f&6r3&?&?qAHf
,
	(!Q)9JJ C ! %!#ffWnffWnaaa&G"HIIK K KO 	OO
s66'>66'>111<=&1133	5 	56 6 6 6 6r]   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   r2   r!   is_contiguoussysgetrefcountr"   r#   r'   gccollect)r(   r)   r*   r+   r4   initial_ref_countnp_viewnp_view2s           r-   0test_image_frame_numpy_view_with_contiguous_dataz?ImageFrameTest.test_image_frame_numpy_view_with_contiguous_data   sF   DAq
)

HAq!9BH

E
EC k.>SIIIOOOO113344488OOBN3(B(B(D(DEEFFF ((**GS__557H17LMMM))++HS__557H17LMMMJLLL 	S__557HIIIIIr]   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   r2   assertFalsera   rb   rc   r!   r"   r#   r'   rd   re   )r(   r)   r*   r+   r4   rf   rg   s          r-   4test_image_frame_numpy_view_with_non_contiguous_datazCImageFrameTest.test_image_frame_numpy_view_with_non_contiguous_data   s   DAq
)

HAq!9BH

E
EC k.>SIIIO_224455588OOBN3(B(B(D(DEEFFF((**GS__557HIIIJLLLS__557HIIIIIr]   N)__name__
__module____qualname__r.   r5   r<   rD   rG   rO   rU   r\   r_   ri   rl    r]   r-   r   r   !   s        2 2 2
3 
3 
3
5 
5 
5% % %
- 
- 
-0 0 0      8 8 86 6 6 J J J.J J J J Jr]   r   __main__)__doc__rd   r   rb   absl.testingr   r   numpyr   	PIL.Imager?   $mediapipe.python._framework_bindingsr   r   r   TestCaser   rm   mainrp   r]   r-   <module>ry      s    B A 				  



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



         < < < < < <%#
]J ]J ]J ]J ]JX& ]J ]J ]J@ z(-///// r]   