o
    €o™i[  ã                   @   sX   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd„ deƒZdS )	é    )ÚAnyÚDictÚOptional)ÚTensor)ÚRigidAffineAugmentationBase2D)ÚBoxes)Ú	Keypointsc                   @   s   e Zd ZdZdedeeef deeef defdd„Z	ddedeeef deeef d	e	e def
d
d„Z
	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„Z	ddedeeef deeef d	e	e def
dd„ZdS )ÚIntensityAugmentationBase2DaT  IntensityAugmentationBase2D base class for customized intensity augmentation implementations.

    Args:
        p: probability for applying an augmentation. This param controls the augmentation probabilities
          element-wise for a batch.
        p_batch: probability for applying an augmentation to a batch. This param controls the augmentation
          probabilities batch-wise.
        same_on_batch: apply the same transformation across the batch.
        keepdim: whether to keep the output shape the same as input ``True`` or broadcast it
          to the batch form ``False``.

    ÚinputÚparamsÚflagsÚreturnc                 C   s
   |   |¡S ©N)Úidentity_matrix)Úselfr
   r   r   © r   úZ/home/ubuntu/.local/lib/python3.10/site-packages/kornia/augmentation/_2d/intensity/base.pyÚcompute_transformation)   s   
z2IntensityAugmentationBase2D.compute_transformationNÚ	transformc                 C   ó   |S r   r   ©r   r
   r   r   r   r   r   r   Úapply_non_transform,   s   z/IntensityAugmentationBase2D.apply_non_transformc                 C   r   r   r   r   r   r   r   Úapply_non_transform_mask2   ó   z4IntensityAugmentationBase2D.apply_non_transform_maskc                 C   r   r   r   r   r   r   r   Úapply_transform_mask7   r   z0IntensityAugmentationBase2D.apply_transform_maskc                 C   r   r   r   r   r   r   r   Úapply_non_transform_boxes<   r   z5IntensityAugmentationBase2D.apply_non_transform_boxesc                 C   r   r   r   r   r   r   r   Úapply_transform_boxesA   r   z1IntensityAugmentationBase2D.apply_transform_boxesc                 C   r   r   r   r   r   r   r   Úapply_non_transform_keypointF   r   z8IntensityAugmentationBase2D.apply_non_transform_keypointc                 C   r   r   r   r   r   r   r   Úapply_transform_keypointK   r   z4IntensityAugmentationBase2D.apply_transform_keypointc                 C   r   r   r   r   r   r   r   Úapply_non_transform_classP   r   z5IntensityAugmentationBase2D.apply_non_transform_classc                 C   r   r   r   r   r   r   r   Úapply_transform_classU   r   z1IntensityAugmentationBase2D.apply_transform_classr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ústrr   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r	      sÞ    *ÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿ
þÿÿ
ÿ
ÿÿþr	   N)Útypingr   r   r   Útorchr   Úkornia.augmentation._2d.baser   Úkornia.geometry.boxesr   Úkornia.geometry.keypointsr   r	   r   r   r   r   Ú<module>   s   