+
     °³j�¿  ã                   óœ  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHtHt ^ RIt^ RIHt ^RIHtHtHt ^RIHt ]]P&                  ]P&                  ]]P6                  ,          ]P6                  3,          t]]P&                  ]P&                  ]]P6                  ,          3,          tR t] P>                  ! ]^R	7      t  ! R
 R]]4      t! ! R R]!4      t" ! R R]!4      t# ! R R]!4      t$ ! R R]!4      t% ! R R]!4      t& ! R R]!4      t' ! R R]!4      t( ! R R]!4      t) ! R R]!4      t* ! R R]!4      t+R# )!é    N)ÚABCÚabstractmethod)Úglob)ÚPath)ÚCallableÚcastÚOptionalÚUnion)ÚImage)Ú	_read_pfmÚdownload_and_extract_archiveÚverify_str_arg)ÚVisionDataset)Úslice_channelsc                   ó²   a a€ ] tR t^t oRtRtRV3R lV 3R llltV3R lR ltRV3R lR llt]	V3R	 lR
 l4       t
V3R lR ltV3R lR ltRtVtV ;t# )ÚStereoMatchingDatasetz+Base interface for Stereo matching datasetsFc                óP   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[,          RR/# ©é   ÚrootÚ
transformsÚreturnN©r
   Ústrr   r	   r   )ÚformatÚ__classdict__s   "€Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/datasets/_stereo_matching.pyÚ__annotate__Ú"StereoMatchingDataset.__annotate__   s1   ø€ ÷ ñ ™U¡3© 9Õ-ð ¹8ÁHÕ;Mð ÐY]ñ ó    c                óP   <€ \         SV `  VR7       W n        . V n        . V n        R# )aÝ  
Args:
    root(str): Root directory of the dataset.
    transforms(callable, optional): A function/transform that takes in Tuples of
        (images, disparities, valid_masks) and returns a transformed version of each of them.
        images is a Tuple of (``PIL.Image``, ``PIL.Image``)
        disparities is a Tuple of (``np.ndarray``, ``np.ndarray``) with shape (1, H, W)
        valid_masks is a Tuple of (``np.ndarray``, ``np.ndarray``) with shape (H, W)
        In some cases, when a dataset does not provide disparities, the ``disparities`` and
        ``valid_masks`` can be Tuples containing None values.
        For training splits generally the datasets provide a minimal guarantee of
        images: (``PIL.Image``, ``PIL.Image``)
        disparities: (``np.ndarray``, ``None``) with shape (1, H, W)
        Optionally, based on the dataset, it can return a ``mask`` as well:
        valid_masks: (``np.ndarray | None``, ``None``) with shape (H, W)
        For some test splits, the datasets provides outputs that look like:
        imgaes: (``PIL.Image``, ``PIL.Image``)
        disparities: (``None``, ``None``)
        Optionally, based on the dataset, it can return a ``mask`` as well:
        valid_masks: (``None``, ``None``)
)r   N)ÚsuperÚ__init__r   Ú_imagesÚ_disparities)Úselfr   r   Ú	__class__s   &&&€r   r#   ÚStereoMatchingDataset.__init__   s)   ø€ ô, 	‰Ñ˜dÐÔ#Ø$ŒàˆŒØˆÖr    c                óP   <€ V ^8„  d   QhRS[ S[S[3,          RS[P                  /# ©r   Ú	file_pathr   ©r
   r   r   r   )r   r   s   "€r   r   r   :   s(   ø€ ÷ ñ ¡5©©d¨Õ#3ð ¹¿¹ñ r    c                óv   € \         P                  ! V4      pVP                  R 8w  d   VP                  R 4      pV# )ÚRGB)r   ÚopenÚmodeÚconvert)r&   r+   Úimgs   && r   Ú	_read_imgÚStereoMatchingDataset._read_img:   s/   € Ü�jŠj˜Ó#ˆØ�8‰8�uÔØ—+‘+˜eÓ$ˆCØˆ
r    c          
      ór   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[S[S[ S[S[ ,          3,          ,          /# )r   Úpaths_left_patternÚpaths_right_patternr   )r   r	   ÚlistÚtuple)r   r   s   "€r   r   r   @   s@   ø€ ÷ ñ áðñ &¡c�]ðñ 
‰e‘C™¡#�Ð&Õ'Õ	(ñ	r    c                óÄ  € \        \        \        V4      4      4      pV'       d   \        \        \        V4      4      4      pM\        R  V 4       4      pV'       g   \        RV 24      hV'       g   \        RV 24      h\	        V4      \	        V4      8w  d+   \        R\	        V4       R\	        V4       RV RV R2	4      h\        R \        W44       4       4      pV# )c              3   ó&   "  € T F  pR x € K	  	  R # 5i©N© ©Ú.0Ú_s   & r   Ú	<genexpr>Ú4StereoMatchingDataset._scan_pairs.<locals>.<genexpr>L   s   é € Ð8©Z¨�t«Zùó   ‚z0Could not find any files matching the patterns: zFound z left files but z# right files using:
 left pattern: z
right pattern: Ú
c              3   ó,   "  € T F
  w  rW3x € K  	  R # 5ir<   r=   )r?   ÚleftÚrights   &  r   rA   rB   [   s   é € ÐSÑ6R¡{ t�d•]Ó6Rùs   ‚)r8   Úsortedr   ÚFileNotFoundErrorÚlenÚ
ValueErrorÚzip)r&   r6   r7   Ú
left_pathsÚright_pathsÚpathss   &&&   r   Ú_scan_pairsÚ!StereoMatchingDataset._scan_pairs@   sä   € ô œ&¤Ð&8Ó!9Ó:Ó;ˆ
÷ Üœv¤dÐ+>Ó&?Ó@ÓA‰KäÑ8©ZÓ8Ó8ˆKçÜ#Ð&VÐWiÐVjÐ$kÓlÐlçÜ#Ð&VÐWjÐVkÐ$lÓmÐmäˆz‹?œc +Ó.Ô.ÜØœ˜Z›Ð)Ð)9¼#¸kÓ:JÐ9Kð L!Ø!3Ð 4ð 5"Ø"5Ð!6°bð:óð ô ÑS´c¸*Ô6RÓSÓSˆØˆr    c                ó„   <€ V ^8„  d   QhRS[ RS[S[S[P                  ,          S[S[P                  ,          3,          /# r*   ©r   r9   r	   ÚnpÚndarray)r   r   s   "€r   r   r   _   s:   ø€ ÷ ñ ©ð ±±xÁÇ
Á
Õ7KÉXÑVX×V`ÑV`ÕMaÐ7aÕ1bñ r    c                ó   € R # r<   r=   )r&   r+   s   &&r   Ú_read_disparityÚ%StereoMatchingDataset._read_disparity^   s   € ñ 	r    c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# ©r   Úindexr   )Úintr
   ÚT1ÚT2)r   r   s   "€r   r   r   c   s#   ø€ ÷ !1ñ !1¡ð !1©©r±2¨v­ñ !1r    c                óŽ  € V P                  V P                  V,          ^ ,          4      pV P                  V P                  V,          ^,          4      pV P                  V P                  V,          ^ ,          4      w  rEV P                  V P                  V,          ^,          4      w  rgW#3pWF3p	WW3p
V P                  e   V P	                  W‰V
4      w  pp	p
V P
                  '       g   V
^ ,          e;   V^ ,          V^,          V	^ ,          \        \        P                  V
^ ,          4      3# V^ ,          V^,          V	^ ,          3# )a'  Return example at given index.

Args:
    index(int): The index of the example to retrieve

Returns:
    tuple: A 3 or 4-tuple with ``(img_left, img_right, disparity, Optional[valid_mask])`` where ``valid_mask``
        can be a numpy boolean mask of shape (H, W) if the dataset provides a file
        indicating which disparity pixels are valid. The disparity is a numpy array of
        shape (1, H, W) and the images are PIL images. ``disparity`` is None for
        datasets on which for ``split="test"`` the authors did not provide annotations.
)	r3   r$   rW   r%   r   Ú_has_built_in_disparity_maskr   rT   rU   )r&   r[   Úimg_leftÚ	img_rightÚdsp_map_leftÚvalid_mask_leftÚdsp_map_rightÚvalid_mask_rightÚimgsÚdsp_mapsÚvalid_maskss   &&         r   Ú__getitem__Ú!StereoMatchingDataset.__getitem__c   s  € ð —>‘> $§,¡,¨uÕ"5°aÕ"8Ó9ˆØ—N‘N 4§<¡<°Õ#6°qÕ#9Ó:ˆ	à(,×(<Ñ(<¸T×=NÑ=NÈuÕ=UÐVWÕ=XÓ(YÑ%ˆØ*.×*>Ñ*>¸t×?PÑ?PÐQVÕ?WÐXYÕ?ZÓ*[Ñ'ˆàÐ$ˆØ Ð0ˆØ&Ð9ˆà�?‰?Ò&ð
 —‘ °Ó<ñ	ØØØð ×,×,Ð,°¸AµÒ0JØ˜•7˜D �G X¨a¥[´$´r·z±zÀ;ÈqÅ>Ó2RÐRÐRà˜•7˜D �G X¨a¥[Ð0Ð0r    c                ó    <€ V ^8„  d   QhRS[ /# )r   r   )r\   )r   r   s   "€r   r   r   †   s   ø€ ÷ !ñ !™ñ !r    c                ó,   € \        V P                  4      # r<   )rJ   r$   )r&   s   &r   Ú__len__ÚStereoMatchingDataset.__len__†   s   € Ü�4—<‘<Ó Ð r    )r%   r$   r   r<   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r`   r#   r3   rP   r   rW   rj   rn   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r'   r   s   @@r   r   r      sZ   ù‡ € Ù5à#(Ð ÷õ ÷8ð ÷ò ð< ÷ó ð÷!1ð !1÷F!÷ !ð !r    r   c                   óp   a a€ ] tR t^Št oRtR	V3R lV 3R llltV3R lR ltV3R lV 3R lltRtVt	V ;t
# )
ÚCarlaStereoa"  
Carla simulator data linked in the `CREStereo github repo <https://github.com/megvii-research/CREStereo>`_.

The dataset is expected to have the following structure: ::

    root
        carla-highres
            trainingF
                scene1
                    img0.png
                    img1.png
                    disp0GT.pfm
                    disp1GT.pfm
                    calib.txt
                scene2
                    img0.png
                    img1.png
                    disp0GT.pfm
                    disp1GT.pfm
                    calib.txt
                ...

Args:
    root (str or ``pathlib.Path``): Root directory where `carla-highres` is located.
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
c                óP   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[,          RR/# r   r   )r   r   s   "€r   r   ÚCarlaStereo.__annotate__¦   s1   ø€ ÷ (ñ (™U¡3© 9Õ-ð (¹8ÁHÕ;Mð (ÐY]ñ (r    c                ó¦  <€ \         S	V `  W4       \        V4      R ,          p\        VR,          R,          R,          4      p\        VR,          R,          R,          4      pV P	                  W44      pWPn        \        VR,          R,          R,          4      p\        VR,          R,          R,          4      pV P	                  Wg4      pW€n        R# )zcarla-highresÚ	trainingFÚ*úim0.pngúim1.pngúdisp0GT.pfmzdisp1GT.pfmN©r"   r#   r   r   rP   r$   r%   )
r&   r   r   Úleft_image_patternÚright_image_patternrg   Úleft_disparity_patternÚright_disparity_patternÚdisparitiesr'   s
   &&&      €r   r#   ÚCarlaStereo.__init__¦   s³   ø€ Ü‰Ñ˜Ô*ä�D‹z˜OÕ+ˆä  ¨Õ!3°cÕ!9¸IÕ!EÓFÐÜ! $¨Õ"4°sÕ":¸YÕ"FÓGÐØ×ÑÐ 2ÓHˆØŒä!$ T¨KÕ%7¸#Õ%=ÀÕ%MÓ!NÐÜ"% d¨[Õ&8¸3Õ&>ÀÕ&NÓ"OÐØ×&Ñ&Ð'=ÓWˆØ'Ör    c                óN   <€ V ^8„  d   QhRS[ RS[S[P                  R3,          /# ©r   r+   r   N©r   r9   rT   rU   )r   r   s   "€r   r   r|   µ   ó)   ø€ ÷ )ñ )©ð )±±r·z±zÀ4Ð7GÕ1Hñ )r    c                óN   € \        V4      p\        P                  ! V4      pR pW#3# r<   ©Ú_read_pfm_filerT   Úabs©r&   r+   Údisparity_mapÚ
valid_masks   &&  r   rW   ÚCarlaStereo._read_disparityµ   ó(   € Ü& yÓ1ˆÜŸš˜}Ó-ˆØˆ
ØÐ(Ð(r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   ©r\   r]   )r   r   s   "€r   r   r|   »   ó   ø€ ÷ 4ñ 4¡ð 4©ñ 4r    c                ó>   <€ \        \        \        SV `  V4      4      # ©a•  Return example at given index.

Args:
    index(int): The index of the example to retrieve

Returns:
    tuple: A 3-tuple with ``(img_left, img_right, disparity)``.
    The disparity is a numpy array of shape (1, H, W) and the images are PIL images.
    If a ``valid_mask`` is generated within the ``transforms`` parameter,
    a 4-tuple with ``(img_left, img_right, disparity, valid_mask)`` is returned.
©r   r]   r"   rj   ©r&   r[   r'   s   &&€r   rj   ÚCarlaStereo.__getitem__»   ó   ø€ ô ”Bœ™Ñ+¨EÓ2Ó3Ð3r    ©r%   r$   r<   ©rp   rq   rr   rs   rt   r#   rW   rj   ru   rv   rw   rx   s   @@r   rz   rz   Š   s-   ù‡ € ñ÷6(õ (÷)ð )÷4÷ 4ó 4r    rz   c                   ót   a a€ ] tR t^Êt oRtRtR
V3R lV 3R llltV3R lR ltV3R lV 3R lltR	t	Vt
V ;t# )ÚKitti2012Stereoa†  
KITTI dataset from the `2012 stereo evaluation benchmark <http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php>`_.
Uses the RGB images for consistency with KITTI 2015.

The dataset is expected to have the following structure: ::

    root
        Kitti2012
            testing
                colored_0
                    1_10.png
                    2_10.png
                    ...
                colored_1
                    1_10.png
                    2_10.png
                    ...
            training
                colored_0
                    1_10.png
                    2_10.png
                    ...
                colored_1
                    1_10.png
                    2_10.png
                    ...
                disp_noc
                    1.png
                    2.png
                    ...
                calib

Args:
    root (str or ``pathlib.Path``): Root directory where `Kitti2012` is located.
    split (string, optional): The dataset split of scenes, either "train" (default) or "test".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
Tc                óV   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RR/# ©r   r   Úsplitr   r   Nr   )r   r   s   "€r   r   ÚKitti2012Stereo.__annotate__ó   ó@   ø€ ÷ Iñ I™U¡3© 9Õ-ð I±cð IÑQYÑZbÕQcð IÐosñ Ir    c                óÆ  <€ \         SV `  W4       \        VR RR7       \        V4      R,          VR,           ,          p\	        VR,          R,          4      p\	        VR,          R,          4      pV P                  WE4      V n        VR8X  d3   \	        VR,          R	,          4      pV P                  VR
4      V n        R
# \        R V P                   4       4      V n        R
# )r¦   Útrain©Úvalid_valuesÚ	Kitti2012ÚingÚ	colored_0z*_10.pngÚ	colored_1Údisp_nocú*.pngNc              3   ó&   "  € T F  pRx € K	  	  R # 5i©N©NNr=   r>   s   & r   rA   Ú+Kitti2012Stereo.__init__.<locals>.<genexpr>  ó   é € Ð$H¹<°a¥\»<ùrC   ©rª   Útest©	r"   r#   r   r   r   rP   r$   r%   r8   )r&   r   r¦   r   Úleft_img_patternÚright_img_patternÚdisparity_patternr'   s   &&&&   €r   r#   ÚKitti2012Stereo.__init__ó   s»   ø€ Ü‰Ñ˜Ô*ä�u˜gÐ4EÕFä�D‹z˜KÕ'¨5°5­=Õ9ˆä˜t kÕ1°JÕ>Ó?ÐÜ  {Õ 2°ZÕ ?Ó@ÐØ×'Ñ'Ð(8ÓLˆŒà�GÔÜ # D¨:Õ$5¸Õ$?Ó @ÐØ $× 0Ñ 0Ð1BÀDÓ IˆDÖä $Ñ$H¸4¿<º<Ó$HÓ HˆDÖr    c                ó^   <€ V ^8„  d   QhRS[ RS[S[S[P                  ,          R3,          /# r‹   rS   )r   r   s   "€r   r   r§     ó.   ø€ ÷ 	)ñ 	)©ð 	)±±xÁÇ
Á
Õ7KÈTÐ7QÕ1Rñ 	)r    c                óŒ   € Vf   R# \         P                  ! \        P                  ! V4      4      R,          pVR,          pR pW#3# ©Ng      p@rµ   ©NºNNNrÄ   ©rT   Úasarrayr   r/   r’   s   &&  r   rW   ÚKitti2012Stereo._read_disparity  óB   € àÒØÐäŸ
š
¤5§:¢:¨iÓ#8Ó9¸EÕAˆà% jÕ1ˆØˆ
ØÐ(Ð(r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r˜   )r   r   s   "€r   r   r§     ó   ø€ ÷ 4ñ 4¡ð 4©ñ 4r    c                ó>   <€ \        \        \        SV `  V4      4      # ©aÉ  Return example at given index.

Args:
    index(int): The index of the example to retrieve

Returns:
    tuple: A 4-tuple with ``(img_left, img_right, disparity, valid_mask)``.
    The disparity is a numpy array of shape (1, H, W) and the images are PIL images.
    ``valid_mask`` is implicitly ``None`` if the ``transforms`` parameter does not
    generate a valid mask.
    Both ``disparity`` and ``valid_mask`` are ``None`` if the dataset split is test.
rœ   r�   s   &&€r   rj   ÚKitti2012Stereo.__getitem__  ó   ø€ ô ”Bœ™Ñ+¨EÓ2Ó3Ð3r    r    ©rª   N©rp   rq   rr   rs   rt   r`   r#   rW   rj   ru   rv   rw   rx   s   @@r   r£   r£   Ê   s8   ù‡ € ñ$ðL $(Ð ÷Iõ I÷"	)ð 	)÷4÷ 4ó 4r    r£   c                   ót   a a€ ] tR tRt oRtRtRV3R lV 3R llltV3R lR ltV3R lV 3R	 lltR
t	Vt
V ;t# )ÚKitti2015Stereoi  a½  
KITTI dataset from the `2015 stereo evaluation benchmark <http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php>`_.

The dataset is expected to have the following structure: ::

    root
        Kitti2015
            testing
                image_2
                    img1.png
                    img2.png
                    ...
                image_3
                    img1.png
                    img2.png
                    ...
            training
                image_2
                    img1.png
                    img2.png
                    ...
                image_3
                    img1.png
                    img2.png
                    ...
                disp_occ_0
                    img1.png
                    img2.png
                    ...
                disp_occ_1
                    img1.png
                    img2.png
                    ...
                calib

Args:
    root (str or ``pathlib.Path``): Root directory where `Kitti2015` is located.
    split (string, optional): The dataset split of scenes, either "train" (default) or "test".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
Tc                óV   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RR/# r¥   r   )r   r   s   "€r   r   ÚKitti2015Stereo.__annotate__K  r¨   r    c                óö  <€ \         SV `  W4       \        VR RR7       \        V4      R,          VR,           ,          p\	        VR,          R,          4      p\	        VR,          R,          4      pV P                  WE4      V n        VR8X  dK   \	        VR,          R,          4      p\	        VR	,          R,          4      pV P                  Wg4      V n        R# \        R
 V P                   4       4      V n        R# )r¦   rª   r«   Ú	Kitti2015r®   Úimage_2r²   Úimage_3Ú
disp_occ_0Ú
disp_occ_1c              3   ó&   "  € T F  pRx € K	  	  R # 5ir´   r=   r>   s   & r   rA   Ú+Kitti2015Stereo.__init__.<locals>.<genexpr>Z  r·   rC   Nr¸   rº   ©	r&   r   r¦   r   r»   r¼   r†   r‡   r'   s	   &&&&    €r   r#   ÚKitti2015Stereo.__init__K  sÎ   ø€ Ü‰Ñ˜Ô*ä�u˜gÐ4EÕFä�D‹z˜KÕ'¨5°5­=Õ9ˆÜ˜t iÕ/°'Õ9Ó:ÐÜ  yÕ 0°7Õ :Ó;ÐØ×'Ñ'Ð(8ÓLˆŒà�GÔÜ%(¨°Õ)<¸wÕ)FÓ%GÐ"Ü&)¨$°Õ*=ÀÕ*GÓ&HÐ#Ø $× 0Ñ 0Ð1GÓ aˆDÖä $Ñ$H¸4¿<º<Ó$HÓ HˆDÖr    c                ó^   <€ V ^8„  d   QhRS[ RS[S[S[P                  ,          R3,          /# r‹   rS   )r   r   s   "€r   r   rÔ   \  rÀ   r    c                óŒ   € Vf   R# \         P                  ! \        P                  ! V4      4      R,          pVR,          pR pW#3# rÂ   rÅ   r’   s   &&  r   rW   ÚKitti2015Stereo._read_disparity\  rÈ   r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r˜   )r   r   s   "€r   r   rÔ   g  rÊ   r    c                ó>   <€ \        \        \        SV `  V4      4      # rÌ   rœ   r�   s   &&€r   rj   ÚKitti2015Stereo.__getitem__g  rÎ   r    r    rÏ   rÐ   rx   s   @@r   rÒ   rÒ     s8   ù‡ € ñ'ðR $(Ð ÷Iõ I÷"	)ð 	)÷4÷ 4ó 4r    rÒ   c                   óº   a a€ ] tR tRt oRtR. ROR. ROR. RO/tRtRV3R lV 3R llltV3R	 lV 3R
 lltV3R lR lt	V3R lR lt
V3R lV 3R lltRtVtV ;t# )ÚMiddlebury2014Stereoiw  aŽ  Publicly available scenes from the Middlebury dataset `2014 version <https://vision.middlebury.edu/stereo/data/scenes2014/>`.

The dataset mostly follows the original format, without containing the ambient subdirectories.  : ::

    root
        Middlebury2014
            train
                scene1-{perfect,imperfect}
                    calib.txt
                    im{0,1}.png
                    im1E.png
                    im1L.png
                    disp{0,1}.pfm
                    disp{0,1}-n.png
                    disp{0,1}-sd.pfm
                    disp{0,1}y.pfm
                scene2-{perfect,imperfect}
                    calib.txt
                    im{0,1}.png
                    im1E.png
                    im1L.png
                    disp{0,1}.pfm
                    disp{0,1}-n.png
                    disp{0,1}-sd.pfm
                    disp{0,1}y.pfm
                ...
            additional
                scene1-{perfect,imperfect}
                    calib.txt
                    im{0,1}.png
                    im1E.png
                    im1L.png
                    disp{0,1}.pfm
                    disp{0,1}-n.png
                    disp{0,1}-sd.pfm
                    disp{0,1}y.pfm
                ...
            test
                scene1
                    calib.txt
                    im{0,1}.png
                scene2
                    calib.txt
                    im{0,1}.png
                ...

Args:
    root (str or ``pathlib.Path``): Root directory of the Middleburry 2014 Dataset.
    split (string, optional): The dataset split of scenes, either "train" (default), "test", or "additional"
    use_ambient_views (boolean, optional): Whether to use different expose or lightning views when possible.
        The dataset samples with equal probability between ``[im1.png, im1E.png, im1L.png]``.
    calibration (string, optional): Whether or not to use the calibrated (default) or uncalibrated scenes.
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
    download (boolean, optional): Whether or not to download the dataset in the ``root`` directory.
rª   Ú
additionalr¹   Tc                óx   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RS[RS[S[,          RS[RR/# )	r   r   r¦   ÚcalibrationÚuse_ambient_viewsr   Údownloadr   N)r
   r   r   r	   Úboolr   )r   r   s   "€r   r   Ú!Middlebury2014Stereo.__annotate__á  sc   ø€ ÷ ?3ñ ?3á‘C™�IÕð?3ñ ð?3ñ ™c•]ð	?3ñ
  ð?3ñ ™XÕ&ð?3ñ ð?3ð 
ñ?3r    c           	     ó  <a€ \         SV `  W4       \        VR RR7       W n        V'       d"   \        VRRR7       VR8X  d   \	        R4      hMVR8w  d   \	        R	V R
V R24      hV'       d   V P                  V4       \        V4      R,          p\        P                  P                  W,          4      '       g   \        RV R24      hV P                  V,          o\        ;QJ d9    V3R l\        P                  ! W,          4       4       F  '       g   K   RM.	  RM*! V3R l\        P                  ! W,          4       4       4      '       g   \        RV R24      hRR.RR.RR.RRR./V,          pV EF  pRV,           p	\        W,          V	,          R,          4      p
\        W,          V	,          R,          4      pV ;P                  V P!                  W«4      ,          un        VR8X  d$   \#        R V P                   4       4      V n        K�  \        W,          V	,          R,          4      p\        W,          V	,          R,          4      pV ;P$                  V P!                  WÍ4      ,          un        EK  	  W@n        R# )r¦   r¹   r«   ré   ÚperfectÚ	imperfectÚbothNzMSplit 'test' has only no calibration settings, please set `calibration=None`.zSplit 'zr' has calibration settings, however None was provided as an argument.
Setting calibration to 'perfect' for split 'zF'. Available calibration settings are: 'perfect', 'imperfect', 'both'.ÚMiddlebury2014zThe z7 directory was not found in the provided root directoryc              3   óX   <"  € T F  pS F  pVP                  V4      x € K  	  K!  	  R # 5ir<   )Ú
startswith)r?   ÚsceneÚsÚsplit_sceness   &  €r   rA   Ú0Middlebury2014Stereo.__init__.<locals>.<genexpr>  s5   øé € ð 
ñ 2�Û!�ð ×Ñ˜Q×Ðá!ñ  Û1ùs   ƒ'*TFz:Provided root folder does not contain any scenes from the z split.Ú z-perfectz
-imperfectr   r€   r�   c              3   ó&   "  € T F  pRx € K	  	  R # 5ir´   r=   r>   s   & r   rA   rø     s   é € Ð(L¹|¸!­»|ùrC   z	disp0.pfmz	disp1.pfm)rª   r¹   rç   )rï   rð   rñ   N)r"   r#   r   r¦   rK   Ú_download_datasetr   ÚosÚpathÚexistsrI   ÚsplitsÚanyÚlistdirr   r$   rP   r8   r%   rê   )r&   r   r¦   ré   rê   r   rë   Úcalibrartion_suffixesÚcalibration_suffixÚscene_patternr»   r¼   Úleft_dispartity_patternÚright_dispartity_patternr÷   r'   s   &&&&&&&       @€r   r#   ÚMiddlebury2014Stereo.__init__á  sE  ù€ ô 	‰Ñ˜Ô*ä�u˜gÐ4SÕTØŒ
çÜ˜;¨ÐDjÕkØ˜ŒÜ Ð!pÓqÐqð ð ˜ŒÜ Ø˜e˜Wð %EØEJÀGð  LRðSóð ÷
 Ø×"Ñ" 4Ô(ä�D‹zÐ,Õ,ˆä�w‰w�~‰~˜d�l×+Ò+Ü# d¨5¨'Ð1hÐ$iÓjÐjà—{‘{ 5Õ)ˆç‹sô 
ô Ÿš D¥LÔ1ó
�s�sŠsô 
ô Ÿš D¥LÔ1ó
÷ 
ò 
ô $Ð&`ÐafÐ`gÐgnÐ$oÓpÐpð �2�$Ø˜
�|Ø˜,˜Ø�Z Ð.ð	!
ð
 õ!Ðô #8ÐØÐ"4Õ4ˆMÜ" 4¥<°-Õ#?À)Õ#KÓLÐÜ # D¥L°=Õ$@À9Õ$LÓ MÐØ�LŠL˜D×,Ñ,Ð-=ÓQÕQ�Là˜ŒÜ$(Ñ(L¸t¿|º|Ó(LÓ$L�Ö!ä*-¨d­l¸]Õ.JÈ[Õ.XÓ*YÐ'Ü+.¨t­|¸mÕ/KÈkÕ/YÓ+ZÐ(Ø×!Ò! T×%5Ñ%5Ð6MÓ%hÕh×!Ð!ñ #8ð "3Ör    c                óP   <€ V ^8„  d   QhRS[ S[S[3,          RS[P                  /# r*   r,   )r   r   s   "€r   r   rí   "  s(   ø€ ÷ ,ñ ,¡5©©d¨Õ#3ð ,¹¿¹ñ ,r    c                óh  <a€ \        V\        4      '       g   \        V4      pVP                  R8X  dq   V P                  '       d_   VP                  o\        V3R lR 4       4      p\        \        R V4      4      pVP                  V4       \        P                  ! V4      p\        SV `-  V4      # )zñ
Function that reads either the original right image or an augmented view when ``use_ambient_views`` is True.
When ``use_ambient_views`` is True, the dataset will return at random one of ``[im1.png, im1E.png, im1L.png]``
as the right image.
r�   c              3   ó6   <"  € T F  pSV,          x € K  	  R # 5ir<   r=   )r?   Ú	view_nameÚ	base_paths   & €r   rA   Ú1Middlebury2014Stereo._read_img.<locals>.<genexpr>0  s   øé € Ð%fÑMeÀ	 i°)×&;Ò&;ÓMeùs   ƒc                 ó@   € \         P                  P                  V 4      # r<   )rü   rý   rþ   )Úps   &r   Ú<lambda>Ú0Middlebury2014Stereo._read_img.<locals>.<lambda>2  s   € ´r·w±w·~±~ÀaÔ7Hr    )zim1E.pngzim1L.png)Ú
isinstancer   Únamerê   Úparentr8   ÚfilterÚappendÚrandomÚchoicer"   r3   )r&   r+   Úambient_file_pathsr  r'   s   && @€r   r3   ÚMiddlebury2014Stereo._read_img"  s�   ù€ ô ˜)¤T×*Ò*Ü˜Y›ˆIà�>‰>˜YÔ&¨4×+A×+AÐ+AØ!×(Ñ(ˆIä!%Ô%fÑMeÓ%fÓ!fÐä!%¤fÑ-HÐJ\Ó&]Ó!^Ðà×%Ñ% iÔ0ÜŸšÐ&8Ó9ˆIÜ‰wÑ  Ó+Ð+r    c                óˆ   <€ V ^8„  d   QhRS[ RS[S[R,          S[S[P                  S[P                  3,          3,          /# ©r   r+   r   rµ   ©r   r
   r9   rT   rU   )r   r   s   "€r   r   rí   8  sB   ø€ ÷ 	)ñ 	)©ð 	)±±u¸ZÕ7HÉ%ÑPR×PZÑPZÑ\^×\fÑ\fÐPfÕJgÐ7gÕ1hñ 	)r    c                ó¨   € Vf   R# \        V4      p\        P                  ! V4      p^ W"\        P                  8H  &   V^ 8„  P	                  ^ 4      pW#3# r´   )r�   rT   r‘   ÚinfÚsqueezer’   s   &&  r   rW   Ú$Middlebury2014Stereo._read_disparity8  sU   € àÒØÐä& yÓ1ˆÜŸš˜}Ó-ˆØ12ˆ¤r§v¡vÑ-Ñ.Ø# aÑ'×0Ñ0°Ó3ˆ
ØÐ(Ð(r    c                ó:   <€ V ^8„  d   QhRS[ S[S[3,          RR/# )r   r   r   N)r
   r   r   )r   r   s   "€r   r   rí   C  s$   ø€ ÷ $7ñ $7¡e©C±¨IÕ&6ð $7¸4ñ $7r    c           	     óì  a€ R p\        S4      R,          oV P                  pVR8w  dw   V P                  V,           F]  pSV,          pR FK  pV RV 2pV RV R2pWW,          P                  4       '       d   K0  \	        VV R2\        V4      RR7       KM  	  K_  	  R# \        P                  ! SR,          4       \        ;QJ d0    V3R lV P                  R,           4       F  '       g   K   RM%	  R	M!! V3R lV P                  R,           4       4      '       d×   R
p	\	        V	\        S4      RR7       \        P                  ! \        SR,          4      4       Fk  w  r«pV F_  pSR,          p\        V
4      V,          p\        P                  ! VRR7       \        P                  ! \        V4      \        V4      4       Ka  	  Km  	  \        P                  ! \        SR,          4      4       R# R# )z8https://vision.middlebury.edu/stereo/data/scenes2014/ziprò   r¹   Ú-Ú/z.zipT)ÚurlÚfilenameÚdownload_rootÚremove_finishedc              3   ób   <"  € T F$  q\         P                  ! SR ,          4      9  x € K&  	  R# 5i)r¹   N)rü   r  )r?   rö   r   s   & €r   rA   Ú9Middlebury2014Stereo._download_dataset.<locals>.<genexpr>Y  s#   øé € ÐSÑ?R¸!œBŸJšJ t¨f¥}Ó5Ö5Ó?Rùs   ƒ,/FzEhttps://vision.middlebury.edu/stereo/submit3/zip/MiddEval3-data-F.zip)r&  r(  r)  zMiddEval3/testF)Úexist_okÚ	MiddEval3N)rï   rð   )r   r¦   rÿ   rþ   r   r   rü   Úmakedirsr   ÚwalkÚshutilÚmoveÚrmtree)r&   r   Úbase_urlÚ
split_nameÚsplit_sceneÚ
split_rootré   Ú
scene_nameÚ	scene_urlÚtest_set_urlÚ	scene_dirÚscene_namesr@   rõ   Úscene_dst_dirÚscene_src_dirs   &f              r   rû   Ú&Middlebury2014Stereo._download_datasetC  sŒ  ø€ ØMˆä�D‹zÐ,Õ,ˆØ—Z‘Zˆ
à˜ÔØ#Ÿ{™{¨:×6Ð6�Ø! JÕ.�
Û#;�KØ$/ =°°+°Ð!?�JØ#+ *¨A¨j¨\¸Ð >�Ià&Õ3×;Ñ;×=Ô=Ü4Ø )Ø(2 |°4Ð%8Ü*-¨j«/Ø,0÷	ó $<ó  7ô �KŠK˜˜v�Ô&ß‹sÔS¸t¿{¹{È6Ö?RÓS�s�sŠsÔS¸t¿{¹{È6Ö?RÓS×SÒSàf�ô -°ÌSÐQUËYÐhlÕmÜ13·²¼¸TÐDUÕ=UÓ9VÖ1WÑ-�I¨AÛ!,˜Ø(,¨v­˜Ü(,¨Y«¸%Õ(?˜ÜŸš M¸DÕAÜŸš¤C¨Ó$6¼¸MÓ8JÖKó	 "-ñ 2Xô —’œc $¨Õ"4Ó5Ö6ñ Tr    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   ©r\   r^   )r   r   s   "€r   r   rí   i  ó   ø€ ÷ 4ñ 4¡ð 4©ñ 4r    c                ó>   <€ \        \        \        SV `  V4      4      # )aB  Return example at given index.

Args:
    index(int): The index of the example to retrieve

Returns:
    tuple: A 4-tuple with ``(img_left, img_right, disparity, valid_mask)``.
    The disparity is a numpy array of shape (1, H, W) and the images are PIL images.
    ``valid_mask`` is implicitly ``None`` for `split=test`.
©r   r^   r"   rj   r�   s   &&€r   rj   Ú Middlebury2014Stereo.__getitem__i  ó   ø€ ô ”Bœ™Ñ+¨EÓ2Ó3Ð3r    )r%   r¦   rê   )
Ú
AdirondackÚ	JadeplantÚ
MotorcycleÚPianoÚPipesÚPlayroomÚ	PlaytableÚRecycleÚShelvesÚVintage)ÚBackpackÚBicycle1ÚCableÚ
Classroom1ÚCouchÚFlowersÚMaskÚShopvacÚSticksÚStorageÚSword1ÚSword2ÚUmbrella)ÚPlantsÚClassroom2EÚ
Classroom2Ú	AustraliaÚDjembeLÚCrusadePÚCrusadeÚHoopsÚBicycle2Ú	StaircaseÚNewkubaÚ
AustraliaPÚDjembeÚ
LivingroomÚComputer)rª   rï   FNF)rp   rq   rr   rs   rt   rÿ   r`   r#   r3   rW   rû   rj   ru   rv   rw   rx   s   @@r   ræ   ræ   w  sr   ù‡ € ñ6ðr 	ò 
ð 	ò 
ð 	ò 
ð9-€Fð^ $(Ð ÷?3õ ?3÷B,ó ,÷,	)ð 	)÷$7ð $7÷L4÷ 4ó 4r    ræ   c                   ót   a a€ ] tR tRt oRtRtRV3R lV 3R llltV3R lR ltV3R lV 3R	 lltR
t	Vt
V ;t# )Ú	CREStereoiw  aü  Synthetic dataset used in training the `CREStereo <https://arxiv.org/pdf/2203.11483.pdf>`_ architecture.
Dataset details on the official paper `repo <https://github.com/megvii-research/CREStereo>`_.

The dataset is expected to have the following structure: ::

    root
        CREStereo
            tree
                img1_left.jpg
                img1_right.jpg
                img1_left.disp.jpg
                img1_right.disp.jpg
                img2_left.jpg
                img2_right.jpg
                img2_left.disp.jpg
                img2_right.disp.jpg
                ...
            shapenet
                img1_left.jpg
                img1_right.jpg
                img1_left.disp.jpg
                img1_right.disp.jpg
                ...
            reflective
                img1_left.jpg
                img1_right.jpg
                img1_left.disp.jpg
                img1_right.disp.jpg
                ...
            hole
                img1_left.jpg
                img1_right.jpg
                img1_left.disp.jpg
                img1_right.disp.jpg
                ...

Args:
    root (str): Root directory of the dataset.
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
Tc                óP   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[,          RR/# r   r   )r   r   s   "€r   r   ÚCREStereo.__annotate__£  s7   ø€ ÷ -ñ -á‘C™�IÕð-ñ ™XÕ&ð-ð 
ñ	-r    c                óÌ  <€ \         SV `  W4       \        V4      R ,          p. ROpV F·  p\        W,          R,          4      p\        W,          R,          4      pV P	                  WV4      pV ;P
                  V,          un        \        W,          R,          4      p\        W,          R,          4      p	V P	                  W‰4      p
V ;P                  V
,          un        K¹  	  R# )rm  z
*_left.jpgz*_right.jpgz*_left.disp.pngz*_right.disp.pngN)ÚshapenetÚ
reflectiveÚtreeÚholerƒ   )r&   r   r   Údirsrö   r„   r…   rg   r†   r‡   rˆ   r'   s   &&&        €r   r#   ÚCREStereo.__init__£  sº   ø€ ô
 	‰Ñ˜Ô*ä�D‹z˜KÕ'ˆâ9ˆãˆAÜ!$ T¥X°Õ%<Ó!=ÐÜ"% d¥h°Õ&>Ó"?ÐØ×#Ñ#Ð$6ÓLˆDØ�LŠL˜DÕ �Lä%(¨­Ð4EÕ)EÓ%FÐ"Ü&)¨$­(Ð5GÕ*GÓ&HÐ#Ø×*Ñ*Ð+AÓ[ˆKØ×Ò Õ,×ó r    c                óN   <€ V ^8„  d   QhRS[ RS[S[P                  R3,          /# r‹   rŒ   )r   r   s   "€r   r   ro  ¹  ó)   ø€ ÷ )ñ )©ð )±±r·z±zÀ4Ð7GÕ1Hñ )r    c                ó    € \         P                  ! \        P                  ! V4      \         P                  R 7      pVR,          R,          pRpW#3# )©ÚdtypeNg      @@rÃ   ©rT   rÆ   r   r/   Úfloat32r’   s   &&  r   rW   ÚCREStereo._read_disparity¹  s<   € ÜŸ
š
¤5§:¢:¨iÓ#8ÄÇ
Á
ÔKˆà% jÕ1°DÕ8ˆØˆ
ØÐ(Ð(r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r˜   )r   r   s   "€r   r   ro  À  r™   r    c                ó>   <€ \        \        \        SV `  V4      4      # )at  Return example at given index.

Args:
    index(int): The index of the example to retrieve

Returns:
    tuple: A 4-tuple with ``(img_left, img_right, disparity, valid_mask)``.
    The disparity is a numpy array of shape (1, H, W) and the images are PIL images.
    ``valid_mask`` is implicitly ``None`` if the ``transforms`` parameter does not
    generate a valid mask.
rœ   r�   s   &&€r   rj   ÚCREStereo.__getitem__À  rŸ   r    r=   r<   rÐ   rx   s   @@r   rm  rm  w  s6   ù‡ € ñ'ðR $(Ð ÷-õ -÷,)ð )÷4÷ 4ó 4r    rm  c                   óp   a a€ ] tR tRt oRtR
V3R lV 3R llltV3R lR ltV3R lV 3R lltR	tVt	V ;t
# )ÚFallingThingsStereoiÏ  aK  `FallingThings <https://research.nvidia.com/publication/2018-06_falling-things-synthetic-dataset-3d-object-detection-and-pose-estimation>`_ dataset.

The dataset is expected to have the following structure: ::

    root
        FallingThings
            single
                dir1
                    scene1
                        _object_settings.json
                        _camera_settings.json
                        image1.left.depth.png
                        image1.right.depth.png
                        image1.left.jpg
                        image1.right.jpg
                        image2.left.depth.png
                        image2.right.depth.png
                        image2.left.jpg
                        image2.right
                        ...
                    scene2
                ...
            mixed
                scene1
                    _object_settings.json
                    _camera_settings.json
                    image1.left.depth.png
                    image1.right.depth.png
                    image1.left.jpg
                    image1.right.jpg
                    image2.left.depth.png
                    image2.right.depth.png
                    image2.left.jpg
                    image2.right
                    ...
                scene2
                ...

Args:
    root (str or ``pathlib.Path``): Root directory where FallingThings is located.
    variant (string): Which variant to use. Either "single", "mixed", or "both".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
c                óV   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RR/# )r   r   Úvariantr   r   Nr   )r   r   s   "€r   r   Ú FallingThingsStereo.__annotate__ü  s@   ø€ ÷ cñ c™U¡3© 9Õ-ð c¹ð cÑT\Ñ]eÕTfð cÐrvñ cr    c                ó¤  <€ \         SV `  W4       \        V4      R ,          p\        VRRR7       RR.RR.RRR./V,          pR\        R4      R,          R\        R4      /pV Fç  p\	        W,          WV,          ,          R,          4      p\	        W,          WV,          ,          R,          4      pV ;P
                  V P                  Wx4      ,          un        \	        W,          WV,          ,          R	,          4      p	\	        W,          WV,          ,          R
,          4      p
V ;P                  V P                  Wš4      ,          un        Ké  	  R# )ÚFallingThingsr…  ÚsingleÚmixedrñ   r«   r   z
*.left.jpgz*.right.jpgz*.left.depth.pngz*.right.depth.pngN)r‰  rŠ  rñ   ©r"   r#   r   r   r   r$   rP   r%   )r&   r   r…  r   ÚvariantsÚsplit_prefixrö   r»   r¼   r†   r‡   r'   s   &&&&       €r   r#   ÚFallingThingsStereo.__init__ü  s  ø€ Ü‰Ñ˜Ô*ä�D‹z˜OÕ+ˆä�w 	Ð8SÕTð �x�jØ�g�YØ�X˜wÐ'ð
ð õ	ˆð ”d˜3“i #•oØ”T˜#“Yð
ˆó
 ˆAÜ" 4¥8¨l­oÕ#=ÀÕ#LÓMÐÜ # D¥H¨|­Õ$>ÀÕ$NÓ OÐØ�LŠL˜D×,Ñ,Ð-=ÓQÕQ�Lä%(¨­°LµOÕ)CÐFXÕ)XÓ%YÐ"Ü&)¨$­(°\µ_Õ*DÐGZÕ*ZÓ&[Ð#Ø×Ò ×!1Ñ!1Ð2HÓ!bÕb×ó r    c                óN   <€ V ^8„  d   QhRS[ RS[S[P                  R3,          /# r‹   rŒ   )r   r   s   "€r   r   r†    s)   ø€ ÷ -ñ -©ð -±±r·z±zÀ4Ð7GÕ1Hñ -r    c                óâ  € \         P                  ! \        P                  ! V4      4      p\	        V4      P
                  R ,          p\        V4      ;_uu_ 4       p\        P                  ! V4      pVR,          ^ ,          R,          R,          p^^dr‡Wv,          V,          VP                  \         P                  4      ,          p	V	R,          p	Rp
Wš3uuRRR4       #   + '       g   i     R# ; i)z_camera_settings.jsonÚcamera_settingsÚintrinsic_settingsÚfxNrÃ   )
rT   rÆ   r   r/   r   r  ÚjsonÚloadÚastyper}  )r&   r+   ÚdepthÚcamera_settings_pathÚfÚ
intrinsicsÚfocalÚbaselineÚpixel_constantr“   r”   s   &&         r   rW   Ú#FallingThingsStereo._read_disparity  s±   € ä—
’
œ5Ÿ:š: iÓ0Ó1ˆô  $ I›×5Ñ5Ð8OÕOÐÜÐ&×'Ô'¨1äŸš 1›ˆJØÐ0Õ1°!Õ4Ð5IÕJÈ4ÕPˆEØ'(¨#�nØ%Õ-°Õ>À%Ç,Á,ÌrÏzÉzÓBZÕZˆMà)¨*Õ5ˆMØˆJØ Ð,÷ (×'×'Ó'ús   ÁA8CÃC.	c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r˜   )r   r   s   "€r   r   r†  (  r™   r    c                ó>   <€ \        \        \        SV `  V4      4      # r›   rœ   r�   s   &&€r   rj   ÚFallingThingsStereo.__getitem__(  rŸ   r    r=   )r‰  Nr¡   rx   s   @@r   rƒ  rƒ  Ï  s0   ù‡ € ñ*÷Xcõ c÷6-ð -÷"4÷ 4ó 4r    rƒ  c                   óp   a a€ ] tR tRt oRtR
V3R lV 3R llltV3R lR ltV3R lV 3R lltR	tVt	V ;t
# )ÚSceneFlowStereoi7  aC  Dataset interface for `Scene Flow <https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html>`_ datasets.
This interface provides access to the `FlyingThings3D, `Monkaa` and `Driving` datasets.

The dataset is expected to have the following structure: ::

    root
        SceneFlow
            Monkaa
                frames_cleanpass
                    scene1
                        left
                            img1.png
                            img2.png
                        right
                            img1.png
                            img2.png
                    scene2
                        left
                            img1.png
                            img2.png
                        right
                            img1.png
                            img2.png
                frames_finalpass
                    scene1
                        left
                            img1.png
                            img2.png
                        right
                            img1.png
                            img2.png
                    ...
                    ...
                disparity
                    scene1
                        left
                            img1.pfm
                            img2.pfm
                        right
                            img1.pfm
                            img2.pfm
            FlyingThings3D
                ...
                ...

Args:
    root (str or ``pathlib.Path``): Root directory where SceneFlow is located.
    variant (string): Which dataset variant to user, "FlyingThings3D" (default), "Monkaa" or "Driving".
    pass_name (string): Which pass to use, "clean" (default), "final" or "both".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.

c          
      ó\   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[RS[S[,          RR/# )r   r   r…  Ú	pass_namer   r   Nr   )r   r   s   "€r   r   ÚSceneFlowStereo.__annotate__m  sR   ø€ ÷ #cñ #cá‘C™�IÕð#cñ ð#cñ ð	#cñ
 ™XÕ&ð#cð 
ñ#cr    c                óP  <€ \         SV `  W4       \        V4      R ,          p\        VRRR7       \        VRRR7       RR
.RR.R	R
R./V,          pW,          pR\        R4      R\        R4      R,          R,          R\        R4      R,          R,          /pV EF  p\	        W,          Wb,          ,          R,          R,          4      p\	        W,          Wb,          ,          R,          R,          4      p	V ;P
                  V P                  W‰4      ,          un        \	        VR,          Wb,          ,          R,          R,          4      p
\	        VR,          Wb,          ,          R,          R,          4      pV ;P                  V P                  W«4      ,          un        EK	  	  R# )Ú	SceneFlowr…  ÚFlyingThings3DÚDrivingÚMonkaar«   r¥  ÚcleanÚfinalrñ   Úframes_cleanpassÚframes_finalpassr   rF   r²   rG   Ú	disparityz*.pfmN)r©  rª  r«  )r¬  r­  rñ   r‹  )r&   r   r…  r¥  r   ÚpassesÚprefix_directoriesr  r„   r…   r†   r‡   r'   s   &&&&&       €r   r#   ÚSceneFlowStereo.__init__m  s}  ø€ ô 	‰Ñ˜Ô*ä�D‹z˜KÕ'ˆä�w 	Ð8_Õ`Ü�y +Ð<VÕWð Ð(Ð)ØÐ(Ð)ØÐ'Ð);Ð<ð
ð õ	ˆð �~ˆð ”d˜3“iØœd 3›i¨#�o°Õ3Ø”t˜C“y 3•¨Õ,ð
Ðô ˆAÜ!$ T¥XÐ0BÕ0KÕ%KÈfÕ%TÐW^Õ%^Ó!_ÐÜ"% d¥hÐ1CÕ1LÕ&LÈwÕ&VÐY`Õ&`Ó"aÐØ�LŠL˜D×,Ñ,Ð-?ÓUÕU�Lä%(¨°Õ);Ð>PÕ>YÕ)YÐ\bÕ)bÐelÕ)lÓ%mÐ"Ü&)¨$°Õ*<Ð?QÕ?ZÕ*ZÐ]dÕ*dÐgnÕ*nÓ&oÐ#Ø×Ò ×!1Ñ!1Ð2HÓ!bÕb×Ðó r    c                óN   <€ V ^8„  d   QhRS[ RS[S[P                  R3,          /# r‹   rŒ   )r   r   s   "€r   r   r¦  ’  r�   r    c                óN   € \        V4      p\        P                  ! V4      pR pW#3# r<   r�   r’   s   &&  r   rW   ÚSceneFlowStereo._read_disparity’  r–   r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r˜   )r   r   s   "€r   r   r¦  ˜  r™   r    c                ó>   <€ \        \        \        SV `  V4      4      # r›   rœ   r�   s   &&€r   rj   ÚSceneFlowStereo.__getitem__˜  rŸ   r    r=   )r©  r¬  Nr¡   rx   s   @@r   r£  r£  7  s1   ù‡ € ñ3÷j#cõ #c÷J)ð )÷4÷ 4ó 4r    r£  c                   ó†   a a€ ] tR tRt oRtRtRV3R lV 3R llltV3R lR ltV3R lR	 ltV3R
 lV 3R llt	Rt
VtV ;t# )ÚSintelStereoi§  a.  Sintel `Stereo Dataset <http://sintel.is.tue.mpg.de/stereo>`_.

The dataset is expected to have the following structure: ::

    root
        Sintel
            training
                final_left
                    scene1
                        img1.png
                        img2.png
                        ...
                    ...
                final_right
                    scene2
                        img1.png
                        img2.png
                        ...
                    ...
                disparities
                    scene1
                        img1.png
                        img2.png
                        ...
                    ...
                occlusions
                    scene1
                        img1.png
                        img2.png
                        ...
                    ...
                outofframe
                    scene1
                        img1.png
                        img2.png
                        ...
                    ...

Args:
    root (str or ``pathlib.Path``): Root directory where Sintel Stereo is located.
    pass_name (string): The name of the pass to use, either "final", "clean" or "both".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
Tc                óV   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RR/# )r   r   r¥  r   r   Nr   )r   r   s   "€r   r   ÚSintelStereo.__annotate__Ö  s@   ø€ ÷ Kñ K™U¡3© 9Õ-ð K¹#ð KÑU]Ñ^fÕUgð KÐswñ Kr    c                ó6  <€ \         S	V `  W4       \        VR RR7       \        V4      R,          pRR.RR.RRR./V,          pV FÏ  p\	        VR,          V R2,          R,          R	,          4      p\	        VR,          V R
2,          R,          R	,          4      pV ;P
                  V P                  Wg4      ,          un        \	        VR,          R,          R,          R	,          4      pV ;P                  V P                  VR4      ,          un        KÑ  	  R# )r¥  r­  r¬  rñ   r«   ÚSintelÚtrainingÚ_leftr   r²   Ú_rightrˆ   N)r­  r¬  rñ   )r"   r#   r   r   r   r$   rP   r%   )
r&   r   r¥  r   Ú
pass_namesr  r»   r¼   r½   r'   s
   &&&&     €r   r#   ÚSintelStereo.__init__Ö  s  ø€ Ü‰Ñ˜Ô*ä�y +Ð<VÕWä�D‹z˜HÕ$ˆà�g�YØ�g�YØ�W˜gÐ&ð
ð õ	ˆ
ó ˆAÜ" 4¨*Õ#4¸!¸¸E°{Õ#BÀSÕ#HÈ7Õ#RÓSÐÜ # D¨:Õ$5¸1¸#¸V¸Õ$DÀsÕ$JÈWÕ$TÓ UÐØ�LŠL˜D×,Ñ,Ð-=ÓQÕQ�Lä # D¨:Õ$5¸Õ$EÈÕ$KÈgÕ$UÓ VÐØ×Ò ×!1Ñ!1Ð2CÀTÓ!JÕJ×ó r    c                ó<   <€ V ^8„  d   QhRS[ RS[S[ S[ 3,          /# r*   )r   r9   )r   r   s   "€r   r   r½  ê  s#   ø€ ÷ /ñ /±Cð /¹EÁ#ÁsÀ(½Oñ /r    c                óò  € \        V4      pVP                  pVP                  pVP                  P                  p\        VR ,          VP                  ,          V,          4      p\        VR,          VP                  ,          V,          4      p\        P
                  P                  V4      '       g   \        RV R24      h\        P
                  P                  V4      '       g   \        RV R24      hWg3# )Ú
occlusionsÚ
outofframezOcclusion mask z does not existzOut of frame mask )r   r  r  r   rü   rý   rþ   rI   )r&   r+   ÚfpathÚbasenameÚscenedirÚ	sampledirÚocclusion_pathÚoutofframe_paths   &&      r   Ú_get_occlussion_mask_pathsÚ'SintelStereo._get_occlussion_mask_pathsê  sÂ   € ô �Y“ˆØ—:‘:ˆØ—<‘<ˆà—O‘O×*Ñ*ˆ	ä˜Y¨Õ5¸¿¹ÕEÈÕPÓQˆÜ˜i¨,Õ6¸¿¹ÕFÈÕQÓRˆä�w‰w�~‰~˜n×-Ò-Ü# o°nÐ5EÀ_Ð$UÓVÐVä�w‰w�~‰~˜o×.Ò.Ü#Ð&8¸Ð8IÈÐ$YÓZÐZàÐ.Ð.r    c                óˆ   <€ V ^8„  d   QhRS[ RS[S[R,          S[S[P                  S[P                  3,          3,          /# r  r  )r   r   s   "€r   r   r½  ÿ  sB   ø€ ÷ )ñ )©ð )±±u¸ZÕ7HÉ%ÑPR×PZÑPZÑ\^×\fÑ\fÐPfÕJgÐ7gÕ1hñ )r    c                ó>  € Vf   R# \         P                  ! \        P                  ! V4      \         P                  R7      p\         P
                  ! V^RR7      w  r4pV^,          V^@,          ,           VR,          ,           p\         P                  ! VR4      pV P                  V4      w  rg\         P                  ! \        P                  ! V4      4      ^ 8H  p\         P                  ! \        P                  ! V4      4      ^ 8H  p	\         P                  ! W˜4      pW(3# )Nrz  )Úaxisrµ   éÿÿÿÿi @  )r   r   é   )	rT   rÆ   r   r/   r}  r¦   Ú	transposerÏ  Úlogical_and)
r&   r+   r“   ÚrÚgÚbÚocclued_mask_pathÚout_of_frame_mask_pathr”   Úoff_masks
   &&        r   rW   ÚSintelStereo._read_disparityÿ  sÔ   € ØÒØÐô Ÿ
š
¤5§:¢:¨iÓ#8ÄÇ
Á
ÔKˆÜ—(’(˜=¨!°"Ô5‰ˆˆaØ˜A�  T¥
Õ*¨Q°%­[Õ8ˆäŸš ]°IÓ>ˆà48×4SÑ4SÐT]Ó4^Ñ1Ðä—Z’Z¤§
¢
Ð+<Ó =Ó>À!ÑCˆ
ä—:’:œeŸjšjÐ)?Ó@ÓAÀQÑFˆä—^’^ HÓ9ˆ
ØÐ(Ð(r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r@  )r   r   s   "€r   r   r½    rA  r    c                ó>   <€ \        \        \        SV `  V4      4      # )aM  Return example at given index.

Args:
    index(int): The index of the example to retrieve

Returns:
    tuple: A 4-tuple with ``(img_left, img_right, disparity, valid_mask)`` is returned.
    The disparity is a numpy array of shape (1, H, W) and the images are PIL images whilst
    the valid_mask is a numpy array of shape (H, W).
rC  r�   s   &&€r   rj   ÚSintelStereo.__getitem__  rE  r    r=   )r­  N)rp   rq   rr   rs   rt   r`   r#   rÏ  rW   rj   ru   rv   rw   rx   s   @@r   r»  r»  §  sB   ù‡ € ñ*ðX $(Ð ÷Kõ K÷(/ð /÷*)ð )÷(4÷ 4ó 4r    r»  c                   óp   a a€ ] tR tRt oRtR
V3R lV 3R llltV3R lR ltV3R lV 3R lltR	tVt	V ;t
# )Ú
InStereo2ki!  al  `InStereo2k <https://github.com/YuhuaXu/StereoDataset>`_ dataset.

The dataset is expected to have the following structure: ::

    root
        InStereo2k
            train
                scene1
                    left.png
                    right.png
                    left_disp.png
                    right_disp.png
                    ...
                scene2
                ...
            test
                scene1
                    left.png
                    right.png
                    left_disp.png
                    right_disp.png
                    ...
                scene2
                ...

Args:
    root (str or ``pathlib.Path``): Root directory where InStereo2k is located.
    split (string): Either "train" or "test".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
c                óV   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RR/# r¥   r   )r   r   s   "€r   r   ÚInStereo2k.__annotate__A  s@   ø€ ÷ ^ñ ^™U¡3© 9Õ-ð ^±cð ^ÑQYÑZbÕQcð ^Ðosñ ^r    c                ó”  <€ \         SV `  W4       \        V4      R ,          V,          p\        VRR	R7       \	        VR,          R,          4      p\	        VR,          R,          4      pV P                  WE4      V n        \	        VR,          R,          4      p\	        VR,          R,          4      pV P                  Wg4      V n        R# )
rã  r¦   r«   r   zleft.pngz	right.pngzleft_disp.pngzright_disp.pngNr¸   )r"   r#   r   r   r   rP   r$   r%   rÝ   s	   &&&&    €r   r#   ÚInStereo2k.__init__A  s¨   ø€ Ü‰Ñ˜Ô*ä�D‹z˜LÕ(¨5Õ0ˆä�u˜gÐ4EÕFä˜t c�z¨JÕ6Ó7ÐÜ  s¥
¨[Õ 8Ó9ÐØ×'Ñ'Ð(8ÓLˆŒä!$ T¨C¥Z°/Õ%AÓ!BÐÜ"% d¨S¥jÐ3CÕ&CÓ"DÐØ ×,Ñ,Ð-CÓ]ˆÖr    c                óN   <€ V ^8„  d   QhRS[ RS[S[P                  R3,          /# r‹   rŒ   )r   r   s   "€r   r   rå  P  rx  r    c                ó    € \         P                  ! \        P                  ! V4      \         P                  R 7      pVR,          R,          pRpW#3# )rz  Ng      �@rÃ   r|  r’   s   &&  r   rW   ÚInStereo2k._read_disparityP  s<   € ÜŸ
š
¤5§:¢:¨iÓ#8ÄÇ
Á
ÔKˆà% jÕ1°FÕ:ˆØˆ
ØÐ(Ð(r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r˜   )r   r   s   "€r   r   rå  W  r™   r    c                ó>   <€ \        \        \        SV `  V4      4      # r›   rœ   r�   s   &&€r   rj   ÚInStereo2k.__getitem__W  rŸ   r    r    rÏ   r¡   rx   s   @@r   rã  rã  !  s/   ù‡ € ñ÷>^õ ^÷)ð )÷4÷ 4ó 4r    rã  c                   ót   a a€ ] tR tRt oRtRtRV3R lV 3R llltV3R lR ltV3R lV 3R	 lltR
t	Vt
V ;t# )ÚETH3DStereoif  a¶  ETH3D `Low-Res Two-View <https://www.eth3d.net/datasets>`_ dataset.

The dataset is expected to have the following structure: ::

    root
        ETH3D
            two_view_training
                scene1
                    im1.png
                    im0.png
                    images.txt
                    cameras.txt
                    calib.txt
                scene2
                    im1.png
                    im0.png
                    images.txt
                    cameras.txt
                    calib.txt
                ...
            two_view_training_gt
                scene1
                    disp0GT.pfm
                    mask0nocc.png
                scene2
                    disp0GT.pfm
                    mask0nocc.png
                ...
            two_view_testing
                scene1
                    im1.png
                    im0.png
                    images.txt
                    cameras.txt
                    calib.txt
                scene2
                    im1.png
                    im0.png
                    images.txt
                    cameras.txt
                    calib.txt
                ...

Args:
    root (str or ``pathlib.Path``): Root directory of the ETH3D Dataset.
    split (string, optional): The dataset split of scenes, either "train" (default) or "test".
    transforms (callable, optional): A function/transform that takes in a sample and returns a transformed version.
Tc                óV   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RR/# r¥   r   )r   r   s   "€r   r   ÚETH3DStereo.__annotate__š  s@   ø€ ÷ Jñ J™U¡3© 9Õ-ð J±cð JÑQYÑZbÕQcð JÐosñ Jr    c                óè  <€ \         S	V `  W4       \        VR RR7       \        V4      R,          pVR8X  d   RMRpRp\	        W,          R,          R	,          4      p\	        W,          R,          R
,          4      pV P                  Wg4      V n        VR8X  d$   \        R V P                   4       4      V n        R# \	        W,          R,          R,          4      pV P                  VR4      V n        R# )r¦   rª   r¹   r«   ÚETH3DÚtwo_view_trainingÚtwo_view_testÚtwo_view_training_gtr   r€   r�   c              3   ó&   "  € T F  pRx € K	  	  R # 5ir´   r=   r>   s   & r   rA   Ú'ETH3DStereo.__init__.<locals>.<genexpr>©  r·   rC   r‚   Nr¸   )	r"   r#   r   r   r   rP   r$   r8   r%   )
r&   r   r¦   r   Úimg_dirÚanot_dirr»   r¼   r½   r'   s
   &&&&     €r   r#   ÚETH3DStereo.__init__š  sË   ø€ Ü‰Ñ˜Ô*ä�u˜gÐ4EÕFä�D‹z˜GÕ#ˆà).°'Ô)9Ñ%¸ˆØ)ˆä˜t�~°Õ3°iÕ?Ó@ÐÜ ¥°Õ 4°yÕ @ÓAÐØ×'Ñ'Ð(8ÓLˆŒà�FŒ?Ü $Ñ$H¸4¿<º<Ó$HÓ HˆDÖä # D¥O°cÕ$9¸MÕ$IÓ JÐØ $× 0Ñ 0Ð1BÀDÓ IˆDÖr    c                óˆ   <€ V ^8„  d   QhRS[ RS[S[R,          S[S[P                  S[P                  3,          3,          /# r  r  )r   r   s   "€r   r   rñ  ®  sB   ø€ ÷ 
)ñ 
)©ð 
)±±u¸ZÕ7HÉ%ÑPR×PZÑPZÑ\^×\fÑ\fÐPfÕJgÐ7gÕ1hñ 
)r    c                ó  € Vf   R# \        V4      p\        P                  ! V4      p\        V4      P                  R,          p\
        P                  ! V4      p\        P                  ! V4      P                  \        4      pW$3# )Nzmask0nocc.pngrµ   )
r�   rT   r‘   r   r  r   r/   rÆ   r–  rì   )r&   r+   r“   Ú	mask_pathr”   s   &&   r   rW   ÚETH3DStereo._read_disparity®  sj   € àÒØÐä& yÓ1ˆÜŸš˜}Ó-ˆÜ˜“O×*Ñ*¨_Õ<ˆ	Ü—Z’Z 	Ó*ˆ
Ü—Z’Z 
Ó+×2Ñ2´4Ó8ˆ
ØÐ(Ð(r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rZ   r@  )r   r   s   "€r   r   rñ  º  rÊ   r    c                ó>   <€ \        \        \        SV `  V4      4      # rÌ   rC  r�   s   &&€r   rj   ÚETH3DStereo.__getitem__º  rÎ   r    r    rÏ   rÐ   rx   s   @@r   rï  rï  f  s8   ù‡ € ñ/ðb $(Ð ÷Jõ J÷(
)ð 
)÷4÷ 4ó 4r    rï  r=   ),Ú	functoolsr”  rü   r  r0  Úabcr   r   r   Úpathlibr   Útypingr   r   r	   r
   ÚnumpyrT   ÚPILr   Úutilsr   r   r   Úvisionr   r9   rU   r]   r^   Ú__all__Úpartialr�   r   rz   r£   rÒ   ræ   rm  rƒ  r£  r»  rã  rï  r=   r    r   Ú<module>r     sA  ðÛ Û Û 	Û Û ß #Ý Ý ß 2Ó 2ã Ý ç JÑ JÝ !à
ˆ5�;‰;˜Ÿ™ X¨b¯j©jÕ%9¸2¿:¹:ÐEÕF€Ø
ˆ5�;‰;˜Ÿ™ X¨b¯j©jÕ%9Ð9Õ:€à
€à×"Ò" 9¸QÔ?€ôn!˜C ô n!ôb=4Ð'ô =4ô@R4Ð+ô R4ôjU4Ð+ô U4ôp}4Ð0ô }4ô@U4Ð%ô U4ôpe4Ð/ô e4ôPm4Ð+ô m4ô`w4Ð(ô w4ôtB4Ð&ô B4ôJa4Ð'ö a4r    