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Zddlm  m	Z
 ddlmZ dZdZdd	gZd
ZdZG dd dejjZdS )z"Dataset class for Malaria dataset.    )absolute_import)division)print_functionNz4https://ceb.nlm.nih.gov/proj/malaria/cell_images.zipzThe Malaria dataset contains a total of 27,558 cell images
with equal instances of parasitized and uninfected cells from the thin blood 
smear slide images of segmented cells.parasitized
uninfected)NN   a   @article{rajaraman2018pre,
  title={Pre-trained convolutional neural networks as feature extractors toward 
  improved malaria parasite detection in thin blood smear images},
  author={Rajaraman, Sivaramakrishnan and Antani, Sameer K and Poostchi, Mahdieh
  and Silamut, Kamolrat and Hossain, Md A and Maude, Richard J and Jaeger, 
  Stefan and Thoma, George R},
  journal={PeerJ},
  volume={6},
  pages={e4568},
  year={2018},
  publisher={PeerJ Inc.}
}
c                   @   s4   e Zd ZdZejdZdd Zdd Z	dd Z
d	S )
Malariaz!Malaria Cell Image Dataset Class.z1.0.0c              	   C   s:   t jj| tt jt jjtdt jjt	ddddt
dS )zDefine Dataset Info.)shape)namesimagelabelz.https://lhncbc.nlm.nih.gov/publication/pub9932)builderdescriptionfeaturessupervised_keyshomepagecitation)tfdscoreDatasetInfo_DESCRIPTIONr   FeaturesDictImage_IMAGE_SHAPE
ClassLabel_NAMES	_CITATION)self r   d/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/image_classification/malaria.py_info<   s   zMalaria._infoc                 C   s.   | t}tjjtjjdtj	|didgS )zDefine Splits.data_dir_pathcell_images)name
gen_kwargs)
download_and_extract_URLr   r   SplitGeneratorSplitTRAINospathjoin)r   
dl_managerr,   r   r   r    _split_generatorsK   s   
zMalaria._split_generatorsc           	      c   sx    ddg}|D ]2}t j||}tjj|D ]!}t|dr8t j||}| }d||f }|||dfV  qqdS )z&Generate images and labels for splits.Parasitized
Uninfectedz*.pngz%s_%sr   N)	r+   r,   r-   tfiogfilelistdirfnmatchlower)	r   r"   folder_namesfolderfolder_path	file_namer   r   image_idr   r   r    _generate_examplesY   s   zMalaria._generate_examplesN)__name__
__module____qualname____doc__r   r   VersionVERSIONr!   r/   r=   r   r   r   r    r   7   s    r   )rA   
__future__r   r   r   r6   r+   tensorflow.compat.v2compatv2r2   tensorflow_datasets.public_api
public_apir   r'   r   r   r   r   r   GeneratorBasedBuilderr   r   r   r   r    <module>   s   