
    &Vf9                         d dl Z d dlZd dlmZ d dlmZ dZddZ	 	 	 	 	 	 	 dd
Z	d ddZ
h dZ	 	 	 	 ddZh 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                   | d         | d         | d	         }}}d
|z  d|z  z   d|z  z   }t          j        |d          }|dk    r[t          | j                  dk    rt          j        |d          }n-t          | j                  dk    rt          j        |d          }t          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   gŏ1w-!?gbX9?gv/?axisr   r   r   r   )r   r   r   )lenshapejnp	transpose
ValueErrorexpand_dimsarray)imagedata_formatredgreenbluegrayscale_images         X/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/jax/image.pyrgb_to_grayscaler$      s8   &&&u{q  M%66EE""M%33EE-${- -  
 V}eFmU6]CslVe^3ftmCOooB???O&&&u{q  !mO\JJOO""!mOYGGO9_%%%    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          |          }|\  }	}
t          | j                  dk    rR|d	k    r!| j        d
         f|z   | j        d         fz   }n| j        d
         | j        d         f|z   }| j        d
         }nYt          | j                  dk    r*|d	k    r|| j        d         fz   }n)| j        d
         f|z   }nt          d| j                   |rv| j        }|d	k    r|d         |d         }}n|d         |d         }}t          t          ||	z            |
z            }t          ||          }t          t          ||
z            |	z            }t          ||          }t          t          ||z
            dz            }t          t          ||z
            dz            }|d	k    rMt          | j                  dk    r| d d |||z   |||z   d d f         } nk| |||z   |||z   d d f         } nRt          | j                  dk    r| d d d d |||z   |||z   f         } n| d d |||z   |||z   f         } n|r| j        }|d	k    r|d         |d         |d         }}}n|d         |d         |d         }}}t          t          ||	z            |
z            }t          ||          }t          t          ||
z            |	z            }t          ||          }t          t          ||z
            dz            }t          t          ||z
            dz            }|d	k    r|d
k    rt          | j                  dk    r[t          j
        t          j        ||||f| j                  |z  | t          j        ||||f| j                  |z  gd          }nt          j
        t          j        |||f| j                  |z  | t          j        |||f| j                  |z  gd
          }nA|d
k    rt          | j                  dk    r[t          j
        t          j        ||||f| j                  |z  | t          j        ||||f| j                  |z  gd          }nt          j
        t          j        |||f| j                  |z  | t          j        |||f| j                  |z  gd          }no| }nk|d
k    rt          | j                  dk    rMt          j
        t          j        ||||f          |z  | t          j        ||||f          |z  gd          }n t          j
        t          j        |||f          |z  | t          j        |||f          |z  gd          }n|d
k    rt          | j                  dk    rLt          j
        t          j        ||||f          |z  | t          j        ||||f          |z  gd          }nLt          j
        t          j        |||f          |z  | t          j        |||f          |z  gd          }n| }|} t          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   r   )dtyper   )method	antialias)RESIZE_INTERPOLATIONSr   r   tupler   intfloatminmaxr   concatenateonesr-   jaxr   resize)r   sizeinterpolationr/   crop_to_aspect_ratiopad_to_aspect_ratio	fill_mode
fill_valuer   target_heighttarget_width
batch_sizer   heightwidthcrop_height
crop_widthcrop_box_hstartcrop_box_wstartchannels
pad_height	pad_widthimg_box_hstartimg_box_wstart
padded_imgs                            r#   r9   r9   (   s	    111P$P P@MP P
 
 	
 J=1:= =
 
 	
  
3 

 
 	
 t99>>6/36 6
 
 	
 ;;D"&M<
5;1/))KN$t+u{2.@@DDKNEKN3d:D[^

	U[		Q		/))5;r?,,DDKN$t+DD) ;) )
 
 	
  w/))!"IuRyEFF!"IuRyEF% 566EFF&+..v455EFF

++
eF[$899A=>>eEJ$677!;<</))5;1$$AA#o&CC#o
&BBAA #o&CC#o
&BBAA 5;1$$AAAA#o&CC#o
&BBD AA#o&CC#o
&BBD
 
 O/))&+BirE"I8EFF&+BirE"I8EFu}455DEE
,,
f|344}DEE	y))	U:#677!;<<U9u#4559::/))!!u{##q((!$H!+^UH M&+k   )	)
 "H!+^UH M&+k   )	) " " "JJ" "%H!/ A&+k   )	)
 "H!/ A&+k   )	) " " "JJ   !##u{##q((!$H!+V^X N&+k   )	)
 "H!+V^X N&+k   )	) " " "JJ" "%H!' B&+k   )	)
 "H!' B&+k   )	) " " "JJ" #

!!u{##q((!$H!+X~u M  )) "H!+X~u M  ))
 " " "JJ "%Hh%FGG()!Hh%FGG()	 	" 	" 	"JJ  !##u{##q((!$H!+Xv~ N  )) "H!+Xv~ N  ))
 " " "JJ "%Hh%GHH()!Hh%GHH()	 	" 	" 	"JJ #
9tMY    r%   r   )r   r   >   wrapmirrorr   reflectr&   c                    |t                                           vr9t          dt          t                                                      d|           |t          vrt          dt           d|           t          |          }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          } | j        d         }t          j        d | j        dd          D             ddi}t          j        d |D             d          }	t          j        |	|ddddf          }	|d d df         }
|d d df         }|d d df         }|d d df         }|j        d d df                             |          }|j        d d df                             |          }|j        d d df                             |
          }|j        d d df                             |          }t          j        |ddgddggd          }t          j        ||d
d
f          }|d d dddf         }t          j        |ddgddgg          }|j        d d dddf                             d          }t          j        d|	|          }t          j        |dd          }|t          j        |g |j        dddR           z  }t'          j        t*          j        j        j        t           |         ||          } t+          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   c                 6    g | ]}t          j        |          S  )r   arange).0r:   s     r#   
<listcomp>z$affine_transform.<locals>.<listcomp>X  s"    	7	7	7t#*T

	7	7	7r%   indexingijc                 :    g | ]}t          j        |d           S )r   r   )r   r   )rW   xs     r#   rX   z$affine_transform.<locals>.<listcomp>[  s'    777	$	$	$777r%   r   r   r      )rK   constant_values)rK   zBhwij, Bjk -> Bhwik)sourcedestination)anewshape)ordermodecvalr   )AFFINE_TRANSFORM_INTERPOLATIONSkeysr   setAFFINE_TRANSFORM_FILL_MODESr   r   r   r   r   r   meshgridr6   tileatpadreshapeeinsummoveaxis	functoolspartialr8   scipyndimagemap_coordinatesvmapsqueeze)r   	transformr;   r>   r?   r   need_squeezerB   rj   indicesa0a2b1b2offsetcoordinates_map_coordinatesaffineds                     r#   affine_transformr   &  s    ;@@BBBB-27799::- -*- -
 
 	

 333N*N NBKN N
 
 	

 "),,I
5;v%%) ;) )
 
 	

 9?6))1(1 1
 
 	
 L
5;1A...
9?q  OIA666	&&&e\22QJ |	7	7u{122	7	7	7BF H o77h777b  G hwQ1a 899G 
111a4B	111a4B	111a4B	111a4BQQQT"&&r**IQQQT"&&r**IQQQT"&&r**IQQQT"&&r**I q!fq!f-q  I I
Aq'9::Iqqq!A#qy!FWVAA'7888FQQQ!QY'++A..I *2GYGGK,{21EEEK3;2JFL2J!2JQ2J2J2JKKKKK !(	)-m<	   )ch'((<<G&&&-66 /+gA...Nr%   c                    |t           vr't          dt          t                      d|           |t          d          vrt          dddg d|           t          j        j                            | ||||          S )Nz8Invalid value for argument `fill_mode`. Expected one of rS   r   z4Invalid value for argument `order`. Expected one of r   r   z. Received: order=)MAP_COORDINATES_FILL_MODESr   rh   ranger8   rs   rt   ru   )inputr   rc   r>   r?   s        r#   ru   ru     s     222%-..% %"% %
 
 	

 E!HH11v1 1).1 1
 
 	
 9,,{E9j  r%   )r	   )r   FFFr&   r'   r	   )r   r&   r   r	   )r&   r'   )rq   r8   	jax.numpynumpyr   keras.src.backend.jax.corer   r0   r$   r9   rf   ri   r   r   ru   rU   r%   r#   <module>r      s       



       8 8 8 8 8 8 & & & &4 n n n nd # #     ^ ^ ^ ^B    AD     r%   