o
    Ni                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlZddlm  mZ	 ddl
mZ dZdZdd	 edd
dD ZdZdZG dd dejjZdS )z#Dataset class for COIL-100 dataset.    )absolute_import)division)print_functionNzUhttp://www.cs.columbia.edu/CAVE/databases/SLAM_coil-20_coil-100/coil-100/coil-100.zipa  The dataset contains 7200 color images of 100 objects
(72 images per object). The objects have a wide variety of complex geometric and reflectance characteristics.
The objects were placed on a motorized turntable against a black background.
The turntable was rotated through 360 degrees to vary object pose with respect to a fxed color camera.
Images of the objects were taken at pose intervals of	5 degrees.This corresponds to
72 poses per objectc                 C   s   g | ]}t |qS  )str).0xr   r   U/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/image/coil100.py
<listcomp>%   s    r
   ih     )   r      z@article{nene1996columbia,
  title={Columbia object image library (coil-20)},
  author={Nene, Sameer A and Nayar, Shree K and Murase, Hiroshi and others},
  year={1996},
  publisher={Technical report CUCS-005-96}
}
c                   @   s8   e Zd ZdZejdZdZdd Z	dd Z
dd	 Zd
S )Coil100zCOIL-100 Image Dataset Class.z1.0.0z>Unable to download on secured networks(eg. University Network)c              	   C   sB   t jj| tt jt jjtdt jjt	dt j
 dddtdS )zDefine Dataset Info.)shape)namesimagelabel	object_id)r   r   z=http://www.cs.columbia.edu/CAVE/software/softlib/coil-100.php)builderdescriptionfeaturessupervised_keyshomepagecitation)tfdscoreDatasetInfo_DESCRIPTIONr   FeaturesDictImage_IMAGE_SHAPE
ClassLabel_LABELSText	_CITATION)selfr   r   r	   _info:   s   zCoil100._infoc                 C   s.   | t}tjjtjjdtj	|didgS )zDefine Splits.data_dir_pathzcoil-100)name
gen_kwargs)
download_and_extract_URLr   r   SplitGeneratorSplitTRAINospathjoin)r&   
dl_managerr1   r   r   r	   _split_generatorsK   s   
zCoil100._split_generatorsc                 c   sj    t jj|D ]*}|dr2tj||}|dd dd }|dd }||||dfV  qdS )z&Generate images and labels for splits.z.png_   .r   r   N)	tfiogfilelistdirendswithr0   r1   r2   split)r&   r(   	file_namer   r   r   r   r   r	   _generate_examplesX   s   

zCoil100._generate_examplesN)__name__
__module____qualname____doc__r   r   VersionVERSIONUNSTABLEr'   r4   r?   r   r   r   r	   r   3   s    r   )rC   
__future__r   r   r   r0   tensorflow.compat.v2compatv2r8   tensorflow_datasets.public_api
public_apir   r,   r   ranger#   r!   r%   r   GeneratorBasedBuilderr   r   r   r   r	   <module>   s   
