
    Wpf                     "   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dlmZ dZdZdd	gd
dgddgddgddgd
dgddgddgddgg	ddgddgddgdd gd!d"gd#d$gd%d&gd'd(gd)d*gg	gZ G d+ d,ej                  Zed-k    r ej                     dS dS ).z/Tests for mediapipe.python.solutions.objectron.    N)absltest)parameterized)	objectronz#mediapipe/python/solutions/testdata      i  i  i     i  i  i  P   i  iY     i[  i  ic  H   ia        i  i     i  i     N      i           i  i   Y      c                   N    e Zd Zd Zd Z ej        dd          d             ZdS )ObjectronTestc           	      T   t          j                    5 }|                     t          d          5  |                    t          j        dt
          j                                      ddd                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz0Input image must contain three channel rgb data.$   dtype      )	mp_objectron	ObjectronassertRaisesRegex
ValueErrorprocessnparangeuint8reshape)selfr   s     i/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/mediapipe/python/solutions/objectron_test.pytest_invalid_image_shapez&ObjectronTest.test_invalid_image_shape(   s@   			!	! JY!!
HJ J J J")Bbh777??1aHHIIIJ J J J J J J J J J J J J J JJ J J J J J J J J J J J J J J J J Js5   BA	B9BB			BB		BB!$B!c                 *   t          j                    5 }t          j        g dt          j                  }|                    d           |                    |          }|                     |j                   d d d            d S # 1 swxY w Y   d S )N)d   r-   r   r      )	r    r!   r%   zerosr'   fillr$   assertIsNonedetected_objects)r)   r   imageresultss       r*   test_blank_imagezObjectronTest.test_blank_image.   s    			!	! 2Yh}}}BH555ejjooo!!%((g
0111	2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   A'BBB)static_image_modeT   )
video_modeF   c           	         t           j                            t           j                            t                    d          }t          j        |          }t          j        |dd          5 }t          |          D ]B}|
                    t          j        |t
          j                            }g }|j        D ]}	|	j        }
|                     |
j        d           d |
j        D             }d |
j        D             }t#          j        t#          j        ||f                    |j        dd         z  }|                    |           |                     |d           t#          j        t#          j        |          t#          j        t0                    z
            }t3          j        |t6                     D	 d d d            d S # 1 swxY w Y   d S )	Nztestdata/shoes.jpg   g      ?)r6   max_num_objectsmin_detection_confidence	   c                     g | ]	}|j         
S  )x.0landmarks     r*   
<listcomp>z4ObjectronTest.test_multi_objects.<locals>.<listcomp>E       ===hxz===    c                     g | ]	}|j         
S r@   )yrB   s     r*   rE   z4ObjectronTest.test_multi_objects.<locals>.<listcomp>F   rF   rG   r   )ospathjoindirname__file__cv2imreadr    r!   ranger$   cvtColorCOLOR_BGR2RGBr2   landmarks_2d	assertLenrD   r%   	transposestackshapeappendabsasarray#EXPECTED_BOX_COORDINATES_PREDICTIONnptassert_array_lessDIFF_THRESHOLD)r)   r6   
num_frames
image_pathr3   r   _r4   multi_box_coordinatesdetected_object	landmarksrA   rI   box_coordinatesprediction_errors                  r*   test_multi_objectsz ObjectronTest.test_multi_objects5   s    bgooh779MNNJJz""E		+!$
& 
& 
& @ *3Z   @ @!##CL8I$J$JKK "&7 	8 	8O%2)
..+Q
/
/
/==)*<===!==)*<===!L1a&)9)9::U[1=MM/

&
&
7
7
7
7,a0006J,--J:;;<= = 	.????@	@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   .EGGGN)__name__
__module____qualname__r+   r5   r   named_parametersrh   r@   rG   r*   r   r   &   sm        J J J2 2 2 "=!"@":< <@ @< <@ @ @rG   r   __main__)__doc__rJ   absl.testingr   r   rO   numpyr%   numpy.testingtestingr]   mediapipe.python.solutionsr   r    TEST_IMAGE_PATHr_   r\   TestCaser   ri   mainr@   rG   r*   <module>rw      se   6 5 				 ! ! ! ! ! ! & & & & & & 



           A @ @ @ @ @7),c
S#Jc
),c
RISz),c
S#JS	(K *-c
S#Jc
),c
RISz),c
S#JS	(K'L #'@ '@ '@ '@ '@M* '@ '@ '@T z(-///// rG   