
    &Vfu7                         d dl Z d dlZd dlZd dlZd dlmZ dZddZ	 	 	 	 	 	 	 dd
Z	dZ
dZ	 	 	 	 ddZd Zd Zd d d eedZd Zd Z	 ddZdS )    N)convert_to_tensor)bilinearnearestlanczos3lanczos5bicubicchannels_lastc                 (   |dk    rst          | j                  dk    rt          j        | d          } nEt          | j                  dk    rt          j        | d          } nt	          d| j                   t          j                            |           }|dk    r[t          | j                  dk    rt          j        |d          }n-t          | j                  dk    rt          j        |d          }t          j        || j                  S )	Nchannels_first   r            r   r   r   r   wInvalid input rank: expected rank 3 (single image) or rank 4 (batch of images). Received input with shape: image.shape=r   r   r   r   r   r   r   )	lenshapetf	transpose
ValueErrorimagergb_to_grayscalecastdtype)r   data_formatgrayscale_images      _/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/tensorflow/image.pyr   r      s	   &&&u{q  L55EE""L	22EE-${- -  
 h//66O&&&u{q   l?LIIOO"" l?IFFO7?EK000    r   Fconstant        c	           
      
    |t           vrt          dt            d|           |dk    rt          d|           |r|rt          d          t          |          dk    st          d|           t          |          }|dk    rst           j                  d	k    rt          j         d
           nEt           j                  dk    rt          j         d           nt          d j                   |rt          j                   }	|	d         |	d         c|\  }
}t          j        t          j        |
z  d          |z  d          }t          j        |          }t          j        |d          }t          j        t          j        |z  d          |
z  d          }t          j        |          }t          j        |d          }t          j        t          j        |z
  d          dz  d          }t          j        t          j        |z
  d          dz  d          }t           j                  d	k    r d d |||z   |||z   d d f          nO |||z   |||z   d d f          n6|r3t          j                   }	|	d         |	d         c|\  }
}t          j        t          j        |
z  d          |z  d          }t          j	        |          }t          j        |d          }t          j        t          j        |z  d          |
z  d          }t          j	        |          }t          j        |d          }t          j        t          j        |z
  d          dz  d          t          j        t          j        |z
  d          dz  d          t           j                  d	k    rt          j                   d         t          j                   d         t          j
        dk     fd fd          t          j
        dk     fdfd          nct          j                   d         t          j
        dk     fd fd          t          j
        dk     fdfd           t
          j                             |||          }|dk    r[t           j                  d	k    rt          j        |d          }n-t           j                  dk    rt          j        |d          }t          j        | j                  S )N<Invalid value for argument `interpolation`. Expected of one . Received: interpolation=r"   z\Invalid value for argument `fill_mode`. Only `'constant'` is supported. Received: fill_mode=zIOnly one of `pad_to_aspect_ratio` & `crop_to_aspect_ratio` can be `True`.r   zPArgument `size` must be a tuple of two elements (height, width). Received: size=r   r   r   r   r   r   float32int32r   c            
          t          j        t          j         fj                  z  t          j         fj                  z  gd          S Nr   r   axisr   concatonesr   )
batch_sizechannels
fill_valuer   img_box_hstartwidths   r    <lambda>zresize.<locals>.<lambda>   s    	'I"'+   %	%
 'I"'+   %	%    r!   c                       S N r   s   r    r8   zresize.<locals>.<lambda>        r!   c            
          t          j        t          j         fj                  z  t          j         fj                  z  gd          S )Nr-   r   r.   r0   )r3   r4   r5   heightr   img_box_wstart
padded_imgs   r    r8   zresize.<locals>.<lambda>   s    	'J"'+   %	%
 #'J"'+   %	%    r!   c                       S r:   r;   rA   s   r    r8   zresize.<locals>.<lambda>       
 r!   c            	          t          j        t          j         fj                  z  t          j         fj                  z  gd          S )Nr-   r   r.   r0   )r4   r5   r   r6   r7   s   r    r8   zresize.<locals>.<lambda>   s    	+UH="'+   %	%
 +UH="'+   %	%    r!   c                       S r:   r;   r<   s   r    r8   zresize.<locals>.<lambda>   r=   r!   c            	          t          j        t          j         fj                  z  t          j         fj                  z  gd          S r,   r0   )r4   r5   r?   r   r@   rA   s   r    r8   zresize.<locals>.<lambda>   s    	#^X>"'+   %	%
 ##^X>"'+   %	%    r!   c                       S r:   r;   rC   s   r    r8   zresize.<locals>.<lambda>   rD   r!   )method	antialiasr   r   )RESIZE_INTERPOLATIONSr   r   tupler   r   r   r   minimummaximumcondr   resizer   )r   sizeinterpolationrJ   crop_to_aspect_ratiopad_to_aspect_ratio	fill_moder5   r   r   target_heighttarget_widthcrop_height
crop_widthcrop_box_hstartcrop_box_wstart
pad_height	pad_widthresizedr3   r4   r?   r6   r@   rA   r7   s   `      `           @@@@@@@r    rP   rP   '   s    111P$P P@MP P
 
 	
 J=1:= =
 
 	
  
3 

 
 	
 t99>>6/36 6
 
 	
 ;;D&&&u{q  L55EE""L	22EE-${- -  
  Pb	59&*#|gGEM)955D
 
 j55gk733WGF\)955E
 

 Zz22
WZ11
'GF[()44q8'
 
 'GEJ&	22Q6
 
 u{q  /K"??/J">>EE /K"??/J">>EE
 
 lb	59&*#|WGEM)955D
 

 Z
33
WZ11
GGF\)955E
 
	 Jui00	GIw//	GJ'33a7
 
 GI%y11A5w
 
 u{q  %+Jxq)H"          % J( "           #"""% JJ* xq)H"         % J( "          #"""% J( hootMY   G &&&u{q  l7L99GG""l7I66G77EK(((r!   )r   r   )r"   r   wrapreflectc           	         |t           vrt          dt            d|           |t          vrt          dt           d|           t          | j                  dvrt          d| j                   t          |j                  dvrt          d|j                   d	}t          | j                  d
k    rt          j        | d          } d}t          |j                  dk    rt          j        |d          }|dk    rt          j        | d          } t
          j        	                    | t          j
        |t
          j                  t          j        |           dd         ||                                |                                          }t          j        || j                  }|dk    rt          j        |d          }|rt          j        |d          }|S )Nr%   r&   z8Invalid value for argument `fill_mode`. Expected of one . Received: fill_mode=)r   r   zwInvalid image rank: expected rank 3 (single image) or rank 4 (batch of images). Received input with shape: image.shape=)r   r   zInvalid transform rank: expected rank 1 (single transform) or rank 2 (batch of transforms). Received input with shape: transform.shape=Fr   r   r.   Tr   r   r   r-   )images
transformsoutput_shaper5   rR   rU   r   )AFFINE_TRANSFORM_INTERPOLATIONSr   AFFINE_TRANSFORM_FILL_MODESr   r   r   expand_dimsr   raw_opsImageProjectiveTransformV3r   r)   upperensure_shapesqueeze)r   	transformrR   rU   r5   r   need_squeezeaffineds           r    affine_transformrr      s3    ;;;-.- -*- -
 
 	

 333N*N NBKN N
 
 	
 5;v%%) ;) )
 
 	

 9?6))1(1 1
 
 	
 L
5;1u1---
9?q  N91555	&&&UL11j3379BJ777Xe__QrT*#))++//## 4  G ogu{33G&&&,w55 .*W1---Nr!   c                 L    |dz
  }t          j        | |z   d|z  z  |z
            S )Nr   r   )r   abs)indexrQ   ss      r    _mirror_index_fixerrw   7  s-    qA6519Q'!+,,,r!   c                 |    t           j                            t          d| z  dz   d|z  dz             dz
  d          S )Nr   r   )r   mathfloordivrw   ru   rQ   s     r    _reflect_index_fixerr|   =  s@    7AIM1t8a<881<a  r!   c                     | S r:   r;   r{   s     r    r8   r8   D  s    E r!   c                 4    t          j        | d|dz
            S )Nr   r   )r   clip_by_valuer{   s     r    r8   r8   E  s    2#3E1dQh#G#G r!   c                     | |z  S r:   r;   r{   s     r    r8   r8   F  s
     r!   )r"   r   r_   mirrorr`   c                     | j         j        r| nt          j        |           } t          j        | t          j                  }t          j        d| j                   }||fgS Nr   )r   
is_integerr   roundr   r*   r"   )
coordinateru   weights      r    _nearest_indices_and_weightsr   L  sY     &1K

rx
7K7K  GJ))E[J,--FFOr!   c                     t          j        |           }| |z
  }d|z
  }t          j        |t           j                  }||f|dz   |fgS r   )r   floorr   r*   )r   lowerupper_weightlower_weightru   s        r    _linear_indices_and_weightsr   U  sQ    HZ  E%L|#LGE28$$EL!EAI|#<==r!   c           	         t          |           t          |          }t          j        |d          }t          t          j        j                            t          |          t          j                  k    r4t          dt          |           dt          j                             t          	                              }|9t          dt          t                                                     d           fd}|dk    rt          }n|dk    rt          }nt          d	          g }	t          |j                  D ]_\  }
} ||
          }g }|D ]5\  }} |||          } |||          }|                    |||f           6|	                    |           `g }t#          j        |	 D ]}t          | \  }t          j        t          j                            fd
}fd}t          j        t          j                  ||          }|                    t/          j        t2          j        |          t          j        ||d         j                  z             t/          j        t2          j        |          }j        j        r"|j        j        r|nt          j        |          }t          j        |j                  S )Nr   r.   z:coordinates must be a sequence of length input.shape, but z != z8Invalid value for argument `fill_mode`. Expected one of rb   c                 .    dk    rd| k    | |k     z  S dS )Nr"   r   Tr;   )ru   rQ   rU   s     r    is_validz!map_coordinates.<locals>.is_validt  s&    
""J54<004r!   r   z+map_coordinates currently requires order<=1c                  R    t          j        t          j                             S r:   )r   r   	gather_nd)indices	input_arrs   r    	fast_pathz"map_coordinates.<locals>.fast_path  s    <Y @ @AAAr!   c            	          t          j        t          j                  } t	          j        | t	          j        t	          j                                      S r:   )	functoolsreduceoperatorand_r   wherer   r   )	all_validr5   r   r   
validitiess    r    	slow_pathz"map_coordinates.<locals>.slow_path  sJ    !(
CCI8R\)W==>>  r!   )r   r   unstackr   r   r   r   r   _INDEX_FIXERSgetsetkeysr   r   NotImplementedErrorzipappend	itertoolsproductr   stackrO   
reduce_allr   r   r   muladdr   r   )inputcoordinatesorderrU   r5   coordinate_arrsindex_fixerr   
interp_funvalid_1d_interpolationsr   rQ   interp_nodesvalid_interpru   r   fixed_indexvalidoutputsitemsweightsr   r   contributionresultr   r   r   s      ``                    @@@r    map_coordinatesr   ]  sN    "%((I'44Ojq999O"27:y#G#GHHJ
;3y////<;< <%(%9%9< <
 
 	

  ##I..K%=%%''((% %"% %
 
 	
     zz1

	!0

!"OPPP AA 5 5
D!z*--) 	> 	>ME6%+eT22KHUD))EeV <====&&|4444G"$;< 
 
'*E{$W,rx0011	B 	B 	B 	B 	B 	B	 	 	 	 	 	 	 	 wr}Z88)YOOX\733glGAJ$4556	
 	
 	
 	
 hlG44F! I!<2H8H8H769?+++r!   )r	   )r   FFFr"   r#   r	   )r   r"   r   r	   )r"   r#   )r   r   r   
tensorflowr   !keras.src.backend.tensorflow.corer   rK   r   rP   rg   rh   rr   rw   r|   r   r   r   r   r;   r!   r    <module>r      sP                ? ? ? ? ? ? 1 1 1 10 E) E) E) E)P#   8 8 8 8v- - -   *)GG,,!#   > > > ADF, F, F, F, F, F,r!   