class_docstr: The HRF dataset is a dataset for retinal vessel segmentation which comprises 45 images and is organized as 15 subsets. Each subset contains one healthy fundus image, one image of patient with diabetic retinopathy and one glaucoma image. The image sizes are 3,304 x 2,336, with a training/testing image split of 21/24.
  (https://doi.org/10.1155/2013/154860)
  
  Args:
      transforms (list): Transforms for image.
      dataset_root (str): The dataset directory. Default: None
      edge (bool): whether extract edge infor in the output
      mode (str, optional): Which part of dataset to use. it is one of ('train', 'val', 'test'). Default: 'train'.
code: def __init__(
      self, dataset_root=None, transforms=None, edge=False, mode="train"
  ):
      self.dataset_root = dataset_root
      self.transforms = Compose(transforms)
      mode = mode.lower()
      self.mode = mode
      self.edge = edge
      self.file_list = list()
      self.num_classes = self.NUM_CLASSES
      self.ignore_index = self.IGNORE_INDEX
  
      if mode not in ["train", "val", "test"]:
          raise ValueError(
              "`mode` should be 'train', 'val' or 'test', but got {}.".format(
                  mode
              )
          )
  
      if self.transforms is None:
          raise ValueError("`transforms` is necessary, but it is None.")
  
      if self.dataset_root is None:
          self.dataset_root = download_file_and_uncompress(
              url=URL,
              savepath=seg_env.DATA_HOME,
              extrapath=seg_env.DATA_HOME,
          )
      elif not os.path.exists(self.dataset_root):
          self.dataset_root = os.path.normpath(self.dataset_root)
          savepath, extraname = self.dataset_root.rsplit(
              sep=os.path.sep, maxsplit=1
          )
          self.dataset_root = download_file_and_uncompress(
              url=URL,
              savepath=savepath,
              extrapath=savepath,
              extraname=extraname,
          )
  
      if mode == "train":
          file_path = os.path.join(self.dataset_root, "train_list.txt")
      elif mode == "val":
          file_path = os.path.join(self.dataset_root, "val_list.txt")
  
      with open(file_path, "r") as f:
          for line in f:
              items = line.strip().split()
              if len(items) != 2:
                  if mode == "train" or mode == "val":
                      raise Exception(
                          "File list format incorrect! It should be"
                          " image_name label_name\\n"
                      )
                  image_path = os.path.join(self.dataset_root, items[0])
                  grt_path = None
              else:
                  image_path = os.path.join(self.dataset_root, items[0])
                  grt_path = os.path.join(self.dataset_root, items[1])
              self.file_list.append([image_path, grt_path])
  
file_path: PaddleSeg/paddleseg/datasets/hrf.py
imports: import os
  from paddleseg.utils.download import download_file_and_uncompress
  from paddleseg.utils import seg_env
  from paddleseg.cvlibs import manager
  from paddleseg.transforms import Compose
  from paddleseg.datasets import Dataset
label_desc: Use image node_id 1 to create a new HRF object from inherited base classes: Dataset with example: obj = HRF(dataset_root, transforms, edge, mode)