From b5d3ed3d260f817e00c3f9cbdc317dfe20025b81 Mon Sep 17 00:00:00 2001
From: dcarron <daniel.carron@idiap.ch>
Date: Thu, 6 Jun 2024 10:07:33 +0200
Subject: [PATCH] [segmentation] Add drhagis database

---
 .gitattributes                                |   1 +
 pyproject.toml                                |   3 +
 .../config/data/drhagis/__init__.py           |   0
 .../config/data/drhagis/datamodule.py         | 103 +++++++++
 .../config/data/drhagis/default.json          | 201 ++++++++++++++++++
 .../config/data/drhagis/default.py            |  11 +
 .../histograms_lwnet_drhagis_default.json     |  16 ++
 .../raw_data/histograms_drhagis_default.json  |  16 ++
 .../libs/segmentation/tests/test_drhagis.py   | 132 ++++++++++++
 9 files changed, 483 insertions(+)
 create mode 100644 .gitattributes
 create mode 100644 src/mednet/libs/segmentation/config/data/drhagis/__init__.py
 create mode 100644 src/mednet/libs/segmentation/config/data/drhagis/datamodule.py
 create mode 100644 src/mednet/libs/segmentation/config/data/drhagis/default.json
 create mode 100644 src/mednet/libs/segmentation/config/data/drhagis/default.py
 create mode 100644 src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_drhagis_default.json
 create mode 100644 src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_drhagis_default.json
 create mode 100644 src/mednet/libs/segmentation/tests/test_drhagis.py

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..5bf898cb
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+src/mednet/libs/segmentation/config/data/cxr8/default.json filter=lfs diff=lfs merge=lfs -text
diff --git a/pyproject.toml b/pyproject.toml
index 910ff540..73ae90e9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -430,6 +430,9 @@ chasedb1-2nd = "mednet.libs.segmentation.config.data.chasedb1.second_annotator"
 # cxr8 - cxr
 cxr8 = "mednet.libs.segmentation.config.data.cxr8.default"
 
+# drhagis dataset - retinography
+drhagis = "mednet.libs.segmentation.config.data.drhagis.default"
+
 # drive dataset - retinography
 drive = "mednet.libs.segmentation.config.data.drive.default"
 
diff --git a/src/mednet/libs/segmentation/config/data/drhagis/__init__.py b/src/mednet/libs/segmentation/config/data/drhagis/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/src/mednet/libs/segmentation/config/data/drhagis/datamodule.py b/src/mednet/libs/segmentation/config/data/drhagis/datamodule.py
new file mode 100644
index 00000000..519e635f
--- /dev/null
+++ b/src/mednet/libs/segmentation/config/data/drhagis/datamodule.py
@@ -0,0 +1,103 @@
+# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+"""DRHAGIS dataset for Vessel Segmentation."""
+
+import os
+import pathlib
+
+import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.models.transforms import crop_image_to_mask
+from mednet.libs.segmentation.data.typing import (
+    SegmentationRawDataLoader as _SegmentationRawDataLoader,
+)
+from torchvision import tv_tensors
+from torchvision.transforms.functional import to_tensor
+
+from ....utils.rc import load_rc
+
+CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
+"""Key to search for in the configuration file for the root directory of this
+database."""
+
+
+class SegmentationRawDataLoader(_SegmentationRawDataLoader):
+    """A specialized raw-data-loader for the Drive dataset."""
+
+    datadir: pathlib.Path
+    """This variable contains the base directory where the database raw data is
+    stored."""
+
+    def __init__(self):
+        self.datadir = pathlib.Path(
+            load_rc().get(CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir))
+        )
+
+    def sample(self, sample: tuple[str, str, str]) -> Sample:
+        """Load a single image sample from the disk.
+
+        Parameters
+        ----------
+        sample
+            A tuple containing path suffixes to the sample image, target, and mask
+            to be loaded, within the dataset root folder.
+
+        Returns
+        -------
+            The sample representation.
+        """
+
+        image = to_tensor(PIL.Image.open(self.datadir / sample[0]).convert(mode="RGB"))
+        target = to_tensor(
+            PIL.Image.open(self.datadir / sample[1]).convert(mode="1", dither=None)
+        )
+        mask = to_tensor(
+            PIL.Image.open(self.datadir / sample[2]).convert(mode="1", dither=None)
+        )
+
+        tensor = tv_tensors.Image(crop_image_to_mask(image, mask))
+        target = tv_tensors.Image(crop_image_to_mask(target, mask))
+        mask = tv_tensors.Mask(crop_image_to_mask(mask, mask))
+
+        return tensor, dict(target=target, mask=mask, name=sample[0])  # type: ignore[arg-type]
+
+
+class DataModule(CachingDataModule):
+    """DRHAGIS dataset for Vessel Segmentation.
+
+    The DR HAGIS database has been created to aid the development of vessel extraction algorithms
+    suitable for retinal screening programmes. Researchers are encouraged to test their
+    segmentation algorithms using this database.
+
+    It should be noted that image 24 and 32 are identical, as this fundus image was obtained
+    from a patient exhibiting both diabetic retinopathy and age-related macular degeneration.
+
+    The images resolutions (height x width) are:
+        - 4752x3168  or
+        - 3456x2304  or
+        - 3126x2136  or
+        - 2896x1944  or
+        - 2816x1880  or
+
+    * Protocol ``default``:
+
+    * Training samples: 19 (including labels and masks)
+    * Test samples: 20 (including labels and masks)
+
+    Parameters
+    ----------
+    split_filename
+        Name of the .json file containing the split to load.
+    """
+
+    def __init__(self, split_filename: str):
+        assert __package__ is not None
+        super().__init__(
+            database_split=make_split(__package__, split_filename),
+            raw_data_loader=SegmentationRawDataLoader(),
+            database_name=__package__.rsplit(".", 1)[1],
+            split_name=pathlib.Path(split_filename).stem,
+        )
diff --git a/src/mednet/libs/segmentation/config/data/drhagis/default.json b/src/mednet/libs/segmentation/config/data/drhagis/default.json
new file mode 100644
index 00000000..a77353e8
--- /dev/null
+++ b/src/mednet/libs/segmentation/config/data/drhagis/default.json
@@ -0,0 +1,201 @@
+{
+	"train": [
+		[
+			"Fundus_Images/1.jpg",
+			"Manual_Segmentations/1_manual_orig.png",
+			"Mask_images/1_mask_orig.png"
+		],
+		[
+			"Fundus_Images/2.jpg",
+			"Manual_Segmentations/2_manual_orig.png",
+			"Mask_images/2_mask_orig.png"
+		],
+		[
+			"Fundus_Images/3.jpg",
+			"Manual_Segmentations/3_manual_orig.png",
+			"Mask_images/3_mask_orig.png"
+		],
+		[
+			"Fundus_Images/4.jpg",
+			"Manual_Segmentations/4_manual_orig.png",
+			"Mask_images/4_mask_orig.png"
+		],
+		[
+			"Fundus_Images/5.jpg",
+			"Manual_Segmentations/5_manual_orig.png",
+			"Mask_images/5_mask_orig.png"
+		],
+		[
+			"Fundus_Images/11.jpg",
+			"Manual_Segmentations/11_manual_orig.png",
+			"Mask_images/11_mask_orig.png"
+		],
+		[
+			"Fundus_Images/12.jpg",
+			"Manual_Segmentations/12_manual_orig.png",
+			"Mask_images/12_mask_orig.png"
+		],
+		[
+			"Fundus_Images/13.jpg",
+			"Manual_Segmentations/13_manual_orig.png",
+			"Mask_images/13_mask_orig.png"
+		],
+		[
+			"Fundus_Images/14.jpg",
+			"Manual_Segmentations/14_manual_orig.png",
+			"Mask_images/14_mask_orig.png"
+		],
+		[
+			"Fundus_Images/15.jpg",
+			"Manual_Segmentations/15_manual_orig.png",
+			"Mask_images/15_mask_orig.png"
+		],
+		[
+			"Fundus_Images/21.jpg",
+			"Manual_Segmentations/21_manual_orig.png",
+			"Mask_images/21_mask_orig.png"
+		],
+		[
+			"Fundus_Images/22.jpg",
+			"Manual_Segmentations/22_manual_orig.png",
+			"Mask_images/22_mask_orig.png"
+		],
+		[
+			"Fundus_Images/23.jpg",
+			"Manual_Segmentations/23_manual_orig.png",
+			"Mask_images/23_mask_orig.png"
+		],
+		[
+			"Fundus_Images/24.jpg",
+			"Manual_Segmentations/24_manual_orig.png",
+			"Mask_images/24_mask_orig.png"
+		],
+		[
+			"Fundus_Images/25.jpg",
+			"Manual_Segmentations/25_manual_orig.png",
+			"Mask_images/25_mask_orig.png"
+		],
+		[
+			"Fundus_Images/31.jpg",
+			"Manual_Segmentations/31_manual_orig.png",
+			"Mask_images/31_mask_orig.png"
+		],
+		[
+			"Fundus_Images/33.jpg",
+			"Manual_Segmentations/33_manual_orig.png",
+			"Mask_images/33_mask_orig.png"
+		],
+		[
+			"Fundus_Images/34.jpg",
+			"Manual_Segmentations/34_manual_orig.png",
+			"Mask_images/34_mask_orig.png"
+		],
+		[
+			"Fundus_Images/35.jpg",
+			"Manual_Segmentations/35_manual_orig.png",
+			"Mask_images/35_mask_orig.png"
+		]
+	],
+	"test": [
+		[
+			"Fundus_Images/6.jpg",
+			"Manual_Segmentations/6_manual_orig.png",
+			"Mask_images/6_mask_orig.png"
+		],
+		[
+			"Fundus_Images/7.jpg",
+			"Manual_Segmentations/7_manual_orig.png",
+			"Mask_images/7_mask_orig.png"
+		],
+		[
+			"Fundus_Images/8.jpg",
+			"Manual_Segmentations/8_manual_orig.png",
+			"Mask_images/8_mask_orig.png"
+		],
+		[
+			"Fundus_Images/9.jpg",
+			"Manual_Segmentations/9_manual_orig.png",
+			"Mask_images/9_mask_orig.png"
+		],
+		[
+			"Fundus_Images/10.jpg",
+			"Manual_Segmentations/10_manual_orig.png",
+			"Mask_images/10_mask_orig.png"
+		],
+		[
+			"Fundus_Images/16.jpg",
+			"Manual_Segmentations/16_manual_orig.png",
+			"Mask_images/16_mask_orig.png"
+		],
+		[
+			"Fundus_Images/17.jpg",
+			"Manual_Segmentations/17_manual_orig.png",
+			"Mask_images/17_mask_orig.png"
+		],
+		[
+			"Fundus_Images/18.jpg",
+			"Manual_Segmentations/18_manual_orig.png",
+			"Mask_images/18_mask_orig.png"
+		],
+		[
+			"Fundus_Images/19.jpg",
+			"Manual_Segmentations/19_manual_orig.png",
+			"Mask_images/19_mask_orig.png"
+		],
+		[
+			"Fundus_Images/20.jpg",
+			"Manual_Segmentations/20_manual_orig.png",
+			"Mask_images/20_mask_orig.png"
+		],
+		[
+			"Fundus_Images/26.jpg",
+			"Manual_Segmentations/26_manual_orig.png",
+			"Mask_images/26_mask_orig.png"
+		],
+		[
+			"Fundus_Images/27.jpg",
+			"Manual_Segmentations/27_manual_orig.png",
+			"Mask_images/27_mask_orig.png"
+		],
+		[
+			"Fundus_Images/28.jpg",
+			"Manual_Segmentations/28_manual_orig.png",
+			"Mask_images/28_mask_orig.png"
+		],
+		[
+			"Fundus_Images/29.jpg",
+			"Manual_Segmentations/29_manual_orig.png",
+			"Mask_images/29_mask_orig.png"
+		],
+		[
+			"Fundus_Images/30.jpg",
+			"Manual_Segmentations/30_manual_orig.png",
+			"Mask_images/30_mask_orig.png"
+		],
+		[
+			"Fundus_Images/36.jpg",
+			"Manual_Segmentations/36_manual_orig.png",
+			"Mask_images/36_mask_orig.png"
+		],
+		[
+			"Fundus_Images/37.jpg",
+			"Manual_Segmentations/37_manual_orig.png",
+			"Mask_images/37_mask_orig.png"
+		],
+		[
+			"Fundus_Images/38.jpg",
+			"Manual_Segmentations/38_manual_orig.png",
+			"Mask_images/38_mask_orig.png"
+		],
+		[
+			"Fundus_Images/39.jpg",
+			"Manual_Segmentations/39_manual_orig.png",
+			"Mask_images/39_mask_orig.png"
+		],
+		[
+			"Fundus_Images/40.jpg",
+			"Manual_Segmentations/40_manual_orig.png",
+			"Mask_images/40_mask_orig.png"
+		]
+	]
+}
diff --git a/src/mednet/libs/segmentation/config/data/drhagis/default.py b/src/mednet/libs/segmentation/config/data/drhagis/default.py
new file mode 100644
index 00000000..c0c5ad84
--- /dev/null
+++ b/src/mednet/libs/segmentation/config/data/drhagis/default.py
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+"""DRHAGIS dataset for Vessel Segmentation (default protocol).
+
+* This configuration resolution: 1760 x 1760 (Resizing)
+"""
+
+from mednet.libs.segmentation.config.data.drhagis.datamodule import DataModule
+
+datamodule = DataModule("default.json")
diff --git a/src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_drhagis_default.json b/src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_drhagis_default.json
new file mode 100644
index 00000000..2007d427
--- /dev/null
+++ b/src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_drhagis_default.json
@@ -0,0 +1,16 @@
+{
+  "train": [
+    ["Fundus_Images/4.jpg", [13468, 47543, 478, 197, 129, 95, 85, 77, 58, 57, 44, 27, 42, 38, 35, 33, 38, 28, 33, 21, 29, 33, 22, 25, 35, 26, 26, 21, 19, 23, 28, 32, 18, 19, 20, 19, 14, 18, 17, 22, 16, 17, 17, 15, 15, 19, 16, 20, 18, 14, 17, 15, 21, 24, 9, 13, 23, 18, 20, 15, 15, 12, 16, 16, 19, 16, 16, 16, 21, 13, 13, 20, 19, 16, 13, 24, 21, 24, 24, 32, 24, 28, 13, 22, 33, 37, 35, 57, 110, 186, 245, 342, 345, 375, 417, 426, 569, 761, 793, 893, 1255, 1622, 1530, 1396, 1341, 1435, 1738, 2164, 2884, 3852, 3850, 4258, 4259, 4128, 3490, 3119, 3023, 3204, 3412, 3428, 3587, 3427, 3545, 3457, 3050, 2688, 2869, 2644, 2575, 2530, 2311, 1935, 1956, 1856, 1861, 2111, 2590, 2625, 2506, 2573, 3055, 3290, 3378, 3392, 3194, 3200, 3293, 3379, 3510, 3439, 3396, 3187, 3456, 3418, 3418, 3730, 3897, 3856, 3718, 3705, 3633, 3673, 3949, 3722, 3696, 3502, 3124, 2859, 2755, 2637, 2553, 2182, 1682, 1537, 1330, 948, 808, 884, 989, 966, 838, 557, 424, 192, 72, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13701, 47893, 330, 124, 96, 70, 58, 52, 42, 30, 43, 59, 40, 32, 45, 32, 34, 29, 30, 30, 27, 25, 24, 30, 27, 20, 19, 16, 27, 17, 18, 30, 25, 20, 22, 18, 16, 31, 15, 18, 18, 22, 21, 25, 19, 49, 169, 411, 450, 600, 1069, 2103, 3371, 5008, 6348, 7530, 8765, 10335, 9486, 8665, 9475, 10194, 10096, 9871, 9645, 9569, 9006, 8290, 7700, 7079, 6397, 6030, 5617, 5400, 4619, 4321, 3726, 3070, 2639, 2444, 2121, 1823, 1757, 1727, 1583, 1352, 1233, 1138, 1048, 966, 871, 795, 737, 721, 673, 675, 671, 610, 653, 680, 617, 558, 518, 453, 460, 415, 381, 397, 367, 404, 376, 392, 336, 342, 341, 333, 350, 311, 343, 327, 303, 324, 292, 307, 264, 255, 233, 197, 176, 168, 129, 108, 93, 84, 73, 59, 46, 49, 30, 14, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13444, 47422, 687, 417, 218, 126, 53, 61, 63, 58, 61, 45, 39, 39, 37, 30, 36, 27, 30, 32, 28, 36, 58, 206, 768, 2187, 4222, 7206, 9236, 9518, 9287, 9536, 9913, 9937, 9690, 9308, 9257, 8896, 10489, 11302, 10523, 8906, 8246, 7639, 6470, 5688, 5029, 4101, 3826, 3553, 3224, 2833, 2740, 2549, 2285, 1852, 1835, 1564, 1455, 1300, 1308, 1117, 1091, 1018, 850, 900, 916, 833, 779, 747, 708, 681, 599, 577, 544, 462, 496, 415, 371, 281, 287, 258, 206, 175, 160, 133, 109, 87, 56, 42, 25, 21, 16, 12, 13, 5, 8, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/1.jpg", [62234, 595, 209, 130, 98, 87, 64, 65, 59, 67, 52, 45, 42, 43, 30, 43, 40, 45, 27, 36, 24, 38, 38, 31, 24, 30, 24, 27, 32, 26, 23, 23, 21, 27, 26, 29, 31, 24, 26, 25, 22, 26, 24, 21, 26, 18, 21, 22, 31, 41, 38, 35, 56, 41, 46, 63, 62, 134, 94, 96, 99, 143, 122, 143, 165, 222, 283, 312, 338, 397, 480, 477, 532, 574, 684, 661, 732, 715, 863, 946, 1029, 1117, 1231, 1433, 1454, 1521, 1700, 1856, 2014, 2012, 2185, 2152, 2388, 2576, 2735, 2762, 2797, 2881, 3050, 2872, 2829, 2758, 2848, 3025, 2995, 3083, 3177, 3113, 3156, 3023, 2949, 2848, 2924, 2891, 2856, 2829, 2813, 3048, 3019, 2881, 2898, 2859, 2784, 2720, 2478, 2319, 2336, 2127, 2124, 2041, 2104, 2080, 1933, 1957, 1954, 1897, 1918, 1986, 1935, 1909, 1796, 1749, 1683, 1757, 1617, 1650, 1552, 1542, 1483, 1587, 1585, 1535, 1468, 1557, 1612, 1642, 1637, 1618, 1613, 1621, 1557, 1621, 1532, 1424, 1458, 1479, 1451, 1441, 1475, 1363, 1382, 1371, 1206, 1188, 1298, 1251, 1215, 1199, 1174, 1165, 1115, 1082, 1040, 990, 907, 903, 895, 906, 844, 815, 775, 699, 682, 661, 518, 488, 477, 447, 408, 379, 291, 223, 187, 176, 142, 126, 112, 95, 60, 61, 70, 53, 37, 38, 38, 52, 22, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62715, 632, 202, 109, 109, 90, 73, 73, 71, 68, 58, 51, 53, 47, 40, 65, 39, 46, 34, 40, 44, 41, 44, 59, 95, 142, 183, 175, 183, 256, 350, 500, 756, 1239, 1518, 1931, 2132, 2103, 2458, 3157, 3724, 4509, 4819, 5342, 5399, 5490, 5570, 5632, 5638, 5773, 5813, 5651, 5745, 5971, 6137, 6120, 6242, 6142, 6069, 5730, 5408, 5173, 4967, 4520, 4011, 3690, 3533, 3418, 3451, 3393, 3333, 3108, 2966, 2526, 2431, 2294, 2151, 2096, 2069, 1980, 1681, 1725, 1666, 1553, 1506, 1413, 1394, 1240, 1252, 1258, 1201, 1172, 1179, 1171, 1144, 1044, 1048, 976, 883, 778, 691, 660, 618, 584, 517, 508, 471, 416, 376, 372, 282, 249, 218, 227, 195, 165, 178, 162, 159, 163, 144, 148, 143, 122, 124, 112, 117, 88, 83, 60, 70, 66, 61, 54, 47, 56, 63, 43, 58, 51, 39, 42, 32, 32, 33, 31, 37, 39, 38, 44, 47, 49, 45, 53, 46, 57, 51, 53, 53, 52, 37, 49, 46, 59, 51, 34, 70, 56, 68, 59, 58, 59, 49, 23, 16, 14, 15, 20, 9, 11, 7, 6, 5, 4, 5, 1, 2, 3, 0, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62378, 850, 420, 154, 111, 94, 82, 71, 66, 65, 71, 47, 59, 51, 66, 52, 36, 50, 51, 55, 81, 87, 132, 133, 134, 146, 176, 276, 580, 1028, 1726, 2499, 3216, 3604, 3654, 3669, 4084, 4834, 5415, 6230, 6590, 6960, 6945, 7296, 7983, 8230, 8418, 8463, 8447, 8638, 8189, 7804, 7543, 7394, 7564, 7864, 8471, 8694, 8494, 7246, 6050, 4619, 3630, 2805, 2127, 1547, 1348, 929, 753, 612, 448, 362, 277, 213, 176, 152, 119, 119, 119, 119, 139, 129, 146, 148, 141, 117, 120, 134, 130, 122, 123, 114, 106, 122, 120, 102, 106, 113, 106, 122, 91, 85, 98, 102, 87, 95, 103, 108, 92, 97, 96, 79, 87, 77, 60, 63, 71, 51, 56, 48, 42, 36, 37, 37, 34, 49, 49, 52, 49, 41, 29, 34, 43, 40, 40, 31, 31, 30, 30, 32, 24, 40, 31, 30, 26, 27, 34, 29, 34, 32, 21, 29, 39, 44, 51, 57, 50, 42, 45, 30, 7, 13, 5, 8, 8, 8, 4, 1, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/14.jpg", [16831, 43607, 662, 404, 236, 156, 111, 112, 78, 63, 61, 43, 48, 43, 43, 41, 41, 37, 37, 37, 38, 16, 31, 29, 27, 25, 24, 26, 20, 16, 21, 21, 26, 28, 27, 20, 23, 20, 24, 20, 17, 23, 17, 23, 14, 10, 18, 15, 18, 19, 14, 19, 15, 14, 25, 18, 14, 19, 17, 12, 14, 14, 16, 11, 14, 18, 14, 15, 14, 9, 17, 17, 9, 12, 16, 15, 16, 11, 18, 13, 14, 11, 14, 13, 10, 12, 7, 14, 16, 10, 12, 14, 13, 13, 12, 17, 20, 11, 19, 17, 18, 17, 18, 11, 12, 15, 15, 16, 17, 13, 18, 16, 17, 15, 18, 15, 16, 22, 20, 12, 12, 16, 23, 16, 15, 14, 14, 23, 15, 14, 21, 24, 22, 28, 22, 17, 31, 25, 29, 31, 42, 46, 85, 101, 123, 122, 161, 176, 207, 252, 274, 360, 386, 475, 576, 649, 693, 766, 892, 1087, 1324, 1571, 1738, 2025, 2273, 2628, 2790, 3049, 3464, 3903, 4059, 4416, 4670, 5201, 5499, 5888, 6158, 6253, 6323, 6386, 6429, 6607, 6504, 6401, 6321, 6325, 6082, 5756, 5653, 5152, 4804, 4366, 4051, 3602, 3457, 3307, 3307, 3135, 3102, 2914, 2557, 2194, 2034, 1752, 1572, 1469, 1428, 1409, 1461, 1538, 1691, 1745, 1771, 1802, 1685, 1656, 1697, 1575, 1512, 1389, 1308, 1278, 1276, 1080, 1076, 989, 950, 809, 751, 641, 523, 400, 300, 226, 205, 147, 147, 114, 108, 97, 90, 87, 59, 44, 45, 29, 32, 11, 8, 3, 1, 0, 0, 0, 0, 0, 17987, 44128, 466, 141, 97, 85, 70, 53, 45, 54, 36, 42, 42, 36, 44, 45, 31, 26, 40, 29, 34, 33, 28, 25, 29, 29, 25, 21, 27, 23, 26, 40, 54, 86, 116, 152, 131, 188, 255, 334, 400, 516, 588, 565, 715, 763, 795, 971, 1195, 1326, 1499, 1681, 2411, 3251, 4409, 6175, 8361, 10724, 12708, 13601, 13786, 13614, 12624, 11663, 10942, 9779, 8162, 7064, 6006, 5079, 4221, 3428, 3166, 3141, 2859, 2516, 2335, 2263, 2039, 1761, 1612, 1555, 1542, 1465, 1339, 1312, 1264, 1307, 1293, 1284, 1413, 1406, 1314, 1220, 1246, 1089, 1020, 908, 695, 557, 404, 299, 206, 179, 177, 174, 153, 158, 130, 140, 130, 113, 118, 130, 96, 80, 84, 77, 64, 68, 53, 57, 70, 73, 83, 80, 83, 83, 77, 77, 80, 79, 78, 79, 75, 70, 56, 41, 58, 56, 67, 65, 57, 61, 68, 73, 65, 93, 74, 83, 78, 90, 61, 73, 75, 65, 64, 52, 67, 52, 57, 63, 45, 43, 45, 41, 46, 35, 46, 43, 38, 30, 33, 35, 40, 26, 37, 33, 34, 24, 22, 27, 27, 20, 25, 26, 21, 11, 14, 5, 9, 10, 9, 12, 5, 8, 11, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17172, 43947, 796, 561, 350, 179, 110, 66, 65, 61, 38, 55, 46, 55, 45, 38, 41, 44, 35, 49, 76, 116, 195, 231, 277, 279, 260, 311, 497, 1066, 2255, 4623, 7694, 11854, 16307, 19529, 21306, 21300, 20776, 19074, 16475, 13124, 9899, 7115, 5315, 4042, 3284, 2660, 2303, 1975, 1878, 1627, 1396, 1171, 1057, 918, 860, 742, 636, 514, 458, 387, 324, 284, 226, 157, 108, 111, 122, 104, 100, 115, 102, 86, 89, 97, 89, 109, 92, 79, 76, 95, 83, 85, 77, 76, 76, 95, 74, 89, 72, 72, 54, 75, 64, 46, 74, 62, 65, 61, 69, 62, 59, 77, 78, 96, 92, 74, 87, 63, 60, 61, 66, 62, 66, 66, 54, 52, 56, 45, 60, 44, 54, 44, 44, 32, 40, 41, 40, 47, 40, 34, 45, 37, 54, 29, 38, 42, 36, 34, 31, 34, 24, 27, 22, 14, 15, 16, 8, 12, 13, 6, 19, 11, 19, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/13.jpg", [18538, 43638, 366, 168, 126, 88, 77, 65, 75, 56, 36, 48, 55, 45, 38, 40, 28, 31, 36, 38, 27, 29, 27, 34, 28, 32, 27, 21, 31, 30, 32, 140, 867, 1501, 1598, 1470, 1425, 1304, 1414, 1529, 1635, 1605, 1568, 1672, 1896, 2059, 2071, 2073, 2235, 2465, 2489, 2508, 2340, 2490, 2507, 2262, 2159, 2091, 1978, 1931, 1975, 2006, 1980, 1995, 1962, 1979, 2050, 2133, 2152, 2313, 2445, 2453, 2445, 2519, 2648, 2605, 2672, 2665, 2712, 2643, 2668, 2680, 2953, 3067, 3139, 3305, 3363, 3737, 3699, 3907, 3862, 3982, 4201, 4201, 4255, 4366, 4515, 4614, 4406, 4248, 4170, 3743, 3514, 3371, 3104, 2785, 2576, 2552, 2227, 2024, 1794, 1658, 1497, 1407, 1222, 1221, 1121, 1033, 995, 898, 866, 854, 827, 655, 575, 513, 410, 376, 347, 327, 304, 327, 277, 313, 301, 281, 239, 224, 231, 191, 229, 201, 199, 183, 210, 217, 212, 223, 220, 188, 215, 207, 227, 233, 205, 200, 205, 160, 189, 191, 163, 155, 167, 150, 142, 154, 127, 119, 105, 109, 86, 65, 41, 29, 25, 18, 18, 15, 8, 9, 5, 6, 9, 4, 6, 0, 1, 3, 1, 2, 1, 2, 5, 0, 1, 3, 1, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18437, 44016, 304, 127, 92, 71, 75, 73, 53, 50, 50, 40, 53, 41, 34, 41, 26, 30, 36, 32, 39, 40, 24, 35, 26, 35, 26, 25, 38, 23, 33, 232, 1004, 1319, 1148, 1199, 1347, 1573, 1969, 2269, 2458, 2226, 2246, 2243, 2466, 2718, 2797, 2974, 3130, 3271, 3401, 3527, 3599, 4070, 4072, 4377, 4478, 4500, 4721, 5131, 5446, 5386, 5295, 5514, 5855, 6057, 6299, 6670, 7204, 7454, 7647, 7290, 6758, 6188, 5411, 4385, 3738, 3308, 2879, 2628, 2585, 2335, 2150, 2076, 1951, 1843, 1698, 1656, 1522, 1442, 1317, 1250, 1214, 1065, 1085, 966, 893, 821, 797, 700, 614, 586, 519, 496, 426, 401, 356, 321, 274, 255, 228, 200, 226, 213, 185, 169, 151, 153, 142, 156, 125, 99, 79, 67, 84, 67, 76, 97, 81, 103, 120, 103, 120, 105, 91, 97, 105, 111, 93, 112, 123, 108, 115, 118, 107, 120, 107, 114, 113, 111, 102, 103, 83, 94, 81, 80, 66, 65, 53, 57, 55, 64, 84, 54, 59, 52, 53, 57, 50, 50, 29, 31, 34, 24, 16, 13, 10, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18491, 43392, 566, 290, 199, 115, 74, 69, 53, 70, 47, 59, 40, 44, 36, 41, 45, 39, 38, 35, 37, 34, 34, 26, 38, 36, 27, 38, 20, 26, 32, 61, 320, 783, 1046, 1328, 1229, 1695, 2292, 3067, 3278, 3201, 3360, 3835, 4202, 4936, 5709, 6334, 7120, 7813, 8225, 8650, 8884, 8942, 9025, 8836, 8540, 8075, 7548, 7477, 7085, 6642, 6012, 5514, 4990, 4149, 3540, 3070, 2666, 2473, 2204, 2040, 2063, 1853, 1776, 1712, 1614, 1525, 1379, 1392, 1263, 1214, 1174, 1092, 1098, 976, 964, 962, 949, 854, 802, 794, 770, 711, 677, 569, 550, 464, 458, 399, 372, 357, 318, 359, 303, 304, 280, 260, 266, 222, 226, 212, 186, 166, 147, 145, 115, 115, 90, 92, 79, 70, 57, 63, 56, 43, 39, 33, 44, 31, 39, 38, 27, 26, 25, 35, 35, 27, 40, 35, 41, 27, 27, 28, 41, 16, 16, 8, 6, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/13.jpg", [18538, 43638, 366, 168, 126, 88, 77, 65, 75, 56, 36, 48, 55, 45, 38, 40, 28, 31, 36, 38, 27, 29, 27, 34, 28, 32, 27, 21, 31, 30, 32, 140, 867, 1501, 1598, 1470, 1425, 1304, 1414, 1529, 1635, 1605, 1568, 1672, 1896, 2059, 2071, 2073, 2235, 2465, 2489, 2508, 2340, 2490, 2507, 2262, 2159, 2091, 1978, 1931, 1975, 2006, 1980, 1995, 1962, 1979, 2050, 2133, 2152, 2313, 2445, 2453, 2445, 2519, 2648, 2605, 2672, 2665, 2712, 2643, 2668, 2680, 2953, 3067, 3139, 3305, 3363, 3737, 3699, 3907, 3862, 3982, 4201, 4201, 4255, 4366, 4515, 4614, 4406, 4248, 4170, 3743, 3514, 3371, 3104, 2785, 2576, 2552, 2227, 2024, 1794, 1658, 1497, 1407, 1222, 1221, 1121, 1033, 995, 898, 866, 854, 827, 655, 575, 513, 410, 376, 347, 327, 304, 327, 277, 313, 301, 281, 239, 224, 231, 191, 229, 201, 199, 183, 210, 217, 212, 223, 220, 188, 215, 207, 227, 233, 205, 200, 205, 160, 189, 191, 163, 155, 167, 150, 142, 154, 127, 119, 105, 109, 86, 65, 41, 29, 25, 18, 18, 15, 8, 9, 5, 6, 9, 4, 6, 0, 1, 3, 1, 2, 1, 2, 5, 0, 1, 3, 1, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18437, 44016, 304, 127, 92, 71, 75, 73, 53, 50, 50, 40, 53, 41, 34, 41, 26, 30, 36, 32, 39, 40, 24, 35, 26, 35, 26, 25, 38, 23, 33, 232, 1004, 1319, 1148, 1199, 1347, 1573, 1969, 2269, 2458, 2226, 2246, 2243, 2466, 2718, 2797, 2974, 3130, 3271, 3401, 3527, 3599, 4070, 4072, 4377, 4478, 4500, 4721, 5131, 5446, 5386, 5295, 5514, 5855, 6057, 6299, 6670, 7204, 7454, 7647, 7290, 6758, 6188, 5411, 4385, 3738, 3308, 2879, 2628, 2585, 2335, 2150, 2076, 1951, 1843, 1698, 1656, 1522, 1442, 1317, 1250, 1214, 1065, 1085, 966, 893, 821, 797, 700, 614, 586, 519, 496, 426, 401, 356, 321, 274, 255, 228, 200, 226, 213, 185, 169, 151, 153, 142, 156, 125, 99, 79, 67, 84, 67, 76, 97, 81, 103, 120, 103, 120, 105, 91, 97, 105, 111, 93, 112, 123, 108, 115, 118, 107, 120, 107, 114, 113, 111, 102, 103, 83, 94, 81, 80, 66, 65, 53, 57, 55, 64, 84, 54, 59, 52, 53, 57, 50, 50, 29, 31, 34, 24, 16, 13, 10, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18491, 43392, 566, 290, 199, 115, 74, 69, 53, 70, 47, 59, 40, 44, 36, 41, 45, 39, 38, 35, 37, 34, 34, 26, 38, 36, 27, 38, 20, 26, 32, 61, 320, 783, 1046, 1328, 1229, 1695, 2292, 3067, 3278, 3201, 3360, 3835, 4202, 4936, 5709, 6334, 7120, 7813, 8225, 8650, 8884, 8942, 9025, 8836, 8540, 8075, 7548, 7477, 7085, 6642, 6012, 5514, 4990, 4149, 3540, 3070, 2666, 2473, 2204, 2040, 2063, 1853, 1776, 1712, 1614, 1525, 1379, 1392, 1263, 1214, 1174, 1092, 1098, 976, 964, 962, 949, 854, 802, 794, 770, 711, 677, 569, 550, 464, 458, 399, 372, 357, 318, 359, 303, 304, 280, 260, 266, 222, 226, 212, 186, 166, 147, 145, 115, 115, 90, 92, 79, 70, 57, 63, 56, 43, 39, 33, 44, 31, 39, 38, 27, 26, 25, 35, 35, 27, 40, 35, 41, 27, 27, 28, 41, 16, 16, 8, 6, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
+  ],
+  "test": [
+    ["Fundus_Images/10.jpg", [65177, 8890, 404, 247, 173, 97, 92, 101, 63, 61, 62, 65, 56, 58, 44, 46, 43, 36, 27, 29, 29, 31, 30, 21, 30, 35, 33, 30, 28, 23, 29, 27, 32, 23, 31, 15, 25, 19, 26, 23, 25, 25, 22, 21, 17, 19, 28, 25, 19, 25, 25, 25, 27, 25, 16, 20, 19, 13, 15, 13, 19, 28, 25, 20, 22, 27, 18, 23, 26, 21, 31, 15, 20, 20, 22, 21, 20, 25, 30, 26, 30, 29, 24, 28, 39, 36, 57, 56, 69, 63, 92, 110, 134, 130, 173, 222, 215, 216, 280, 324, 382, 480, 525, 521, 612, 575, 599, 625, 722, 812, 839, 952, 919, 1026, 1072, 1162, 1229, 1210, 1244, 1283, 1239, 1276, 1297, 1362, 1483, 1570, 1636, 1663, 1740, 1861, 1950, 2079, 2139, 2109, 2156, 2208, 2226, 2256, 2310, 2561, 2548, 2594, 2621, 2566, 2828, 2792, 2667, 2734, 2839, 2925, 2912, 2959, 3046, 3160, 3382, 3789, 3718, 3827, 3968, 3890, 3823, 3632, 3517, 3358, 3237, 3239, 3294, 3289, 3397, 3356, 3475, 3458, 3544, 3385, 3216, 3026, 3026, 2923, 2652, 2588, 2572, 2431, 2387, 2366, 2364, 2280, 2262, 1907, 1882, 1698, 1609, 1478, 1466, 1315, 1223, 1197, 948, 775, 662, 528, 439, 372, 323, 244, 190, 145, 91, 62, 41, 16, 16, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65344, 8928, 445, 271, 215, 139, 120, 111, 91, 94, 72, 82, 71, 53, 64, 43, 64, 43, 50, 45, 53, 40, 41, 44, 32, 26, 33, 37, 51, 53, 30, 44, 51, 91, 112, 111, 136, 183, 188, 239, 262, 320, 363, 432, 533, 578, 730, 889, 1192, 1400, 1632, 1918, 1951, 2234, 2669, 2891, 3263, 3819, 4354, 4938, 5824, 6854, 8198, 9773, 11189, 11720, 11985, 11776, 10697, 9295, 7800, 6252, 5055, 4530, 3950, 3739, 3529, 3423, 3335, 3204, 3071, 3113, 3122, 3145, 3027, 3021, 2858, 2727, 2329, 2237, 2095, 1904, 1526, 1112, 737, 510, 354, 231, 168, 122, 98, 104, 69, 70, 67, 53, 54, 54, 49, 59, 40, 59, 50, 51, 47, 73, 61, 60, 60, 64, 52, 57, 58, 61, 58, 64, 55, 63, 65, 58, 48, 41, 31, 17, 4, 3, 6, 4, 4, 1, 4, 5, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 4, 1, 3, 3, 0, 4, 0, 1, 3, 0, 1, 0, 3, 1, 2, 2, 0, 1, 1, 0, 5, 2, 4, 1, 2, 2, 1, 0, 3, 4, 2, 2, 1, 2, 0, 1, 3, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65361, 8757, 484, 311, 219, 177, 108, 130, 106, 117, 120, 77, 83, 79, 58, 71, 55, 55, 63, 44, 48, 46, 50, 47, 37, 39, 38, 54, 55, 32, 43, 42, 42, 40, 47, 50, 41, 52, 51, 47, 56, 60, 63, 67, 72, 88, 112, 139, 192, 268, 367, 524, 691, 951, 1077, 1406, 1913, 2398, 3461, 5183, 6951, 8320, 9260, 9977, 10942, 10999, 10663, 9343, 8507, 8261, 7814, 7392, 7222, 7272, 7554, 7130, 7368, 7181, 7202, 6797, 6258, 5240, 4204, 3374, 2719, 2218, 1663, 1201, 951, 681, 557, 446, 376, 341, 270, 223, 188, 158, 135, 125, 123, 113, 103, 73, 71, 67, 51, 81, 62, 74, 63, 81, 79, 83, 72, 67, 63, 69, 77, 60, 68, 63, 65, 56, 43, 23, 19, 9, 15, 9, 1, 4, 1, 2, 1, 3, 0, 3, 2, 2, 1, 5, 0, 0, 3, 0, 3, 1, 1, 1, 1, 2, 2, 1, 2, 1, 0, 2, 0, 1, 2, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 5, 1, 2, 0, 1, 0, 0, 0, 3, 3, 1, 1, 0, 2, 0, 1, 3, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/9.jpg", [13691, 48244, 369, 184, 104, 94, 56, 46, 56, 57, 37, 45, 35, 45, 30, 41, 33, 40, 26, 36, 30, 27, 34, 28, 19, 14, 24, 18, 28, 16, 23, 22, 22, 24, 22, 30, 21, 20, 21, 31, 19, 19, 20, 19, 16, 29, 18, 13, 26, 22, 21, 19, 15, 21, 21, 15, 23, 25, 22, 20, 19, 23, 21, 29, 22, 26, 18, 22, 27, 27, 33, 23, 39, 48, 108, 127, 230, 340, 603, 868, 1180, 1667, 2149, 2602, 2976, 3394, 3696, 3577, 3612, 3748, 3691, 3800, 4192, 4396, 4533, 4401, 4626, 4877, 5382, 5548, 5750, 5866, 6017, 6163, 6223, 6200, 6039, 5846, 5965, 6031, 6341, 6360, 6519, 6267, 6160, 5509, 5029, 4504, 4435, 3993, 3759, 3441, 2954, 2588, 2269, 2031, 1852, 1581, 1481, 1287, 1152, 1131, 891, 875, 808, 744, 672, 636, 537, 553, 514, 505, 422, 443, 472, 401, 417, 428, 377, 372, 332, 343, 312, 306, 297, 294, 282, 223, 207, 202, 166, 164, 170, 138, 134, 114, 124, 122, 103, 92, 51, 34, 27, 20, 12, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13764, 48513, 259, 133, 100, 64, 59, 54, 34, 46, 42, 49, 42, 45, 35, 40, 37, 30, 31, 28, 24, 25, 28, 24, 23, 30, 23, 23, 24, 23, 20, 27, 28, 25, 23, 28, 18, 9, 18, 23, 30, 76, 127, 189, 198, 348, 366, 388, 465, 490, 510, 526, 571, 592, 626, 783, 956, 1186, 1554, 2618, 3607, 4578, 5387, 6181, 7530, 9056, 10394, 11696, 12703, 13947, 14869, 14837, 14119, 12385, 10577, 9308, 8153, 7008, 6081, 5018, 4291, 3564, 3000, 2631, 2232, 1782, 1502, 1208, 1033, 873, 730, 641, 656, 576, 577, 475, 454, 428, 349, 309, 281, 268, 251, 211, 195, 138, 135, 126, 97, 82, 79, 82, 89, 67, 99, 70, 61, 59, 66, 59, 55, 59, 44, 72, 51, 70, 45, 46, 36, 45, 51, 34, 51, 50, 59, 52, 54, 47, 41, 34, 41, 37, 32, 40, 34, 30, 35, 26, 33, 33, 36, 39, 34, 37, 27, 40, 37, 44, 35, 39, 37, 39, 29, 44, 41, 44, 41, 40, 52, 28, 32, 11, 11, 9, 14, 8, 2, 3, 6, 1, 3, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13636, 47983, 661, 331, 181, 92, 58, 50, 57, 50, 59, 46, 55, 36, 36, 34, 26, 38, 24, 32, 30, 29, 29, 29, 18, 23, 33, 29, 25, 28, 23, 26, 23, 21, 29, 51, 53, 84, 79, 101, 114, 138, 188, 248, 337, 504, 734, 1101, 1609, 2540, 3736, 5986, 9283, 12045, 13677, 14929, 16018, 15514, 14794, 13876, 12392, 10950, 9521, 8322, 7235, 6133, 5420, 5282, 4845, 4554, 4028, 3535, 3241, 2755, 2337, 1867, 1422, 1102, 949, 793, 630, 521, 465, 365, 351, 305, 286, 221, 218, 161, 150, 129, 122, 139, 125, 149, 109, 114, 110, 106, 95, 84, 78, 82, 77, 72, 84, 88, 87, 83, 64, 68, 63, 59, 56, 53, 55, 56, 48, 44, 44, 35, 43, 27, 33, 26, 29, 25, 29, 23, 34, 19, 21, 22, 24, 28, 22, 29, 25, 37, 27, 29, 21, 30, 30, 35, 34, 33, 41, 33, 32, 32, 32, 22, 24, 25, 30, 33, 30, 35, 31, 47, 38, 29, 25, 17, 9, 18, 12, 9, 4, 5, 7, 6, 5, 3, 1, 6, 2, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/38.jpg", [63476, 13851, 3830, 2072, 588, 310, 271, 199, 204, 207, 186, 208, 187, 192, 170, 166, 179, 181, 146, 151, 158, 146, 170, 142, 124, 144, 146, 140, 132, 132, 184, 140, 132, 149, 145, 123, 111, 147, 142, 133, 139, 139, 137, 150, 137, 144, 171, 146, 166, 158, 159, 169, 187, 184, 241, 318, 572, 795, 1056, 1269, 1357, 1085, 871, 894, 779, 847, 966, 1086, 1135, 974, 944, 1075, 1161, 1387, 1635, 1845, 2001, 1690, 1414, 1270, 1193, 1284, 1337, 1414, 1632, 1959, 2188, 2630, 3155, 3660, 3685, 3721, 3996, 4259, 4395, 4408, 4745, 4912, 4766, 4784, 4558, 4503, 4381, 3942, 3737, 3553, 3578, 3621, 3395, 3171, 2711, 2599, 2428, 2314, 2202, 1856, 1855, 1635, 1545, 1432, 1416, 1403, 1321, 1288, 1206, 1164, 1170, 1164, 1199, 1085, 1087, 1053, 1067, 995, 1034, 1080, 1159, 1187, 1144, 1029, 995, 983, 965, 928, 916, 917, 957, 990, 935, 963, 935, 896, 855, 793, 869, 796, 776, 782, 742, 707, 747, 698, 623, 652, 656, 621, 598, 631, 607, 624, 633, 527, 481, 416, 337, 309, 302, 264, 224, 212, 181, 128, 103, 72, 75, 69, 57, 61, 53, 55, 47, 52, 54, 37, 32, 38, 22, 19, 9, 9, 6, 5, 2, 1, 2, 3, 1, 0, 0, 0, 1, 1, 3, 2, 1, 3, 0, 1, 2, 1, 1, 0, 2, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63391, 13728, 3645, 2421, 689, 344, 284, 257, 265, 259, 291, 303, 299, 297, 315, 300, 266, 303, 287, 298, 301, 335, 338, 451, 547, 538, 572, 680, 687, 886, 1456, 2751, 4298, 5872, 7569, 8500, 8331, 8722, 8895, 8748, 7663, 6857, 6238, 5353, 4894, 4560, 4120, 4111, 4035, 3869, 3879, 3902, 4159, 4466, 4540, 4380, 4162, 3514, 3069, 2708, 2654, 2399, 2407, 2241, 2144, 2075, 2043, 1788, 1840, 1671, 1472, 1436, 1372, 1313, 1175, 1047, 938, 840, 780, 703, 698, 628, 692, 650, 624, 669, 636, 528, 501, 470, 466, 470, 486, 484, 472, 475, 387, 308, 278, 274, 305, 230, 216, 208, 222, 201, 178, 163, 122, 55, 73, 63, 62, 53, 44, 47, 49, 50, 39, 59, 41, 52, 53, 47, 69, 60, 78, 45, 65, 61, 50, 73, 63, 50, 61, 46, 53, 35, 41, 34, 24, 41, 30, 20, 21, 18, 25, 18, 20, 15, 17, 25, 19, 12, 26, 15, 27, 19, 16, 17, 23, 31, 25, 26, 19, 17, 6, 8, 7, 4, 2, 1, 4, 8, 6, 1, 2, 3, 4, 6, 3, 0, 2, 2, 6, 2, 3, 0, 1, 0, 5, 0, 3, 3, 1, 1, 1, 1, 0, 0, 0, 4, 1, 1, 0, 4, 0, 0, 3, 1, 1, 0, 1, 2, 0, 1, 1, 3, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63402, 13549, 3075, 1954, 635, 345, 290, 255, 230, 227, 225, 206, 200, 206, 224, 214, 245, 232, 258, 261, 305, 355, 455, 567, 759, 1092, 1468, 2167, 3524, 5790, 9242, 13058, 14250, 12483, 9598, 7850, 6445, 5551, 5017, 5054, 5180, 5416, 5498, 5418, 5438, 5033, 4759, 4815, 4578, 4496, 4255, 3888, 3515, 3206, 2761, 2372, 2321, 2048, 1784, 1549, 1481, 1378, 1296, 1141, 1040, 955, 874, 851, 751, 664, 568, 564, 518, 482, 454, 388, 385, 390, 403, 380, 381, 360, 358, 351, 353, 333, 329, 398, 341, 334, 390, 372, 374, 356, 367, 380, 354, 340, 365, 298, 258, 246, 236, 203, 178, 184, 194, 198, 147, 115, 154, 132, 122, 135, 126, 121, 113, 116, 119, 101, 123, 129, 118, 71, 41, 25, 26, 27, 30, 23, 16, 18, 21, 16, 21, 33, 14, 15, 20, 13, 18, 18, 25, 18, 13, 9, 5, 2, 4, 0, 4, 5, 2, 0, 3, 5, 4, 1, 2, 5, 2, 1, 3, 5, 3, 1, 1, 3, 2, 4, 1, 1, 3, 5, 4, 2, 4, 3, 3, 7, 1, 1, 3, 5, 0, 4, 2, 2, 0, 1, 3, 0, 4, 0, 1, 0, 2, 0, 1, 2, 1, 4, 1, 1, 0, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/8.jpg", [13799, 47331, 544, 217, 145, 107, 83, 67, 66, 69, 66, 53, 46, 43, 41, 28, 36, 41, 24, 25, 18, 28, 32, 38, 16, 30, 26, 23, 16, 23, 22, 19, 23, 22, 18, 15, 18, 26, 16, 19, 14, 15, 19, 26, 14, 16, 12, 17, 17, 30, 26, 8, 20, 15, 10, 10, 13, 22, 11, 25, 18, 15, 15, 10, 15, 14, 16, 17, 17, 10, 13, 11, 12, 15, 9, 13, 23, 15, 18, 18, 16, 16, 18, 19, 14, 17, 14, 13, 12, 25, 19, 11, 16, 20, 17, 14, 17, 11, 22, 15, 9, 16, 15, 14, 19, 18, 26, 13, 17, 12, 17, 21, 25, 13, 21, 20, 20, 23, 23, 18, 23, 34, 98, 117, 132, 171, 199, 216, 211, 216, 223, 383, 471, 556, 706, 977, 1184, 1518, 1943, 2388, 2805, 3427, 3785, 4300, 4526, 4679, 4796, 4984, 5548, 5679, 6495, 7383, 7681, 7785, 7094, 6663, 6700, 6750, 6703, 6625, 6792, 6676, 7170, 7580, 7868, 8107, 7933, 7680, 7185, 6281, 5862, 5309, 4745, 4080, 3487, 2557, 1828, 1300, 1059, 697, 445, 296, 151, 52, 20, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14311, 47735, 394, 104, 80, 70, 79, 45, 38, 48, 47, 40, 38, 37, 26, 25, 32, 29, 35, 24, 37, 26, 25, 15, 18, 27, 27, 23, 29, 19, 28, 28, 25, 22, 19, 18, 19, 32, 48, 79, 75, 75, 71, 76, 114, 169, 200, 280, 290, 357, 369, 409, 361, 442, 450, 524, 663, 1027, 1585, 2252, 2360, 2592, 3013, 3492, 3866, 4256, 4559, 4777, 5124, 5579, 6120, 7002, 7493, 8654, 9500, 9849, 9711, 9407, 8731, 8160, 7591, 6966, 6456, 6103, 5304, 5006, 4647, 4379, 4069, 3724, 3467, 3367, 2969, 2873, 2486, 2237, 2039, 1824, 1661, 1542, 1355, 1237, 1164, 1135, 1114, 978, 990, 968, 867, 803, 704, 628, 541, 462, 426, 466, 398, 419, 400, 336, 318, 297, 280, 217, 227, 204, 190, 171, 191, 163, 153, 156, 139, 125, 109, 78, 75, 66, 66, 61, 63, 56, 51, 61, 63, 44, 49, 40, 28, 34, 32, 22, 26, 15, 10, 10, 13, 8, 15, 14, 13, 15, 3, 9, 4, 5, 0, 3, 2, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13809, 47653, 581, 309, 183, 97, 72, 61, 55, 45, 37, 45, 44, 34, 33, 35, 29, 37, 33, 30, 26, 23, 27, 29, 23, 16, 23, 21, 25, 20, 22, 29, 32, 29, 28, 40, 47, 64, 87, 80, 81, 97, 107, 71, 88, 72, 67, 79, 61, 109, 137, 192, 290, 324, 466, 661, 934, 1515, 2404, 3688, 5699, 8814, 11676, 13465, 14194, 12881, 12110, 11360, 10980, 10653, 10081, 9025, 8160, 7411, 6748, 6159, 5075, 4338, 3895, 3676, 3489, 3221, 3082, 2834, 2648, 2618, 2549, 2356, 1949, 1727, 1553, 1491, 1372, 1124, 998, 885, 815, 734, 607, 567, 491, 407, 370, 333, 283, 225, 205, 163, 154, 156, 145, 138, 152, 169, 172, 163, 172, 177, 174, 176, 206, 197, 189, 161, 179, 185, 170, 138, 157, 162, 141, 117, 107, 92, 89, 68, 68, 64, 57, 40, 41, 53, 39, 44, 36, 32, 41, 27, 24, 29, 24, 23, 18, 24, 12, 12, 17, 15, 6, 7, 3, 6, 5, 2, 1, 2, 0, 1, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/39.jpg", [19799, 42033, 338, 173, 110, 98, 79, 71, 62, 52, 38, 49, 40, 39, 41, 41, 26, 33, 28, 28, 27, 29, 45, 31, 21, 25, 18, 24, 30, 30, 26, 16, 16, 19, 20, 28, 26, 27, 31, 18, 23, 20, 18, 26, 25, 30, 22, 10, 15, 26, 20, 25, 27, 19, 25, 23, 23, 28, 46, 53, 58, 79, 88, 206, 380, 489, 663, 839, 1017, 1129, 1182, 1291, 1588, 1696, 1815, 1860, 2066, 2185, 2260, 2277, 2199, 2150, 2062, 2234, 2233, 2314, 2369, 2329, 2399, 2437, 2386, 2361, 2379, 2417, 2454, 2486, 2588, 2693, 2653, 2691, 2862, 2962, 2999, 3075, 3116, 3278, 3186, 3299, 3241, 3268, 3349, 3313, 3277, 3244, 3334, 3410, 3400, 3282, 3271, 3216, 3239, 3143, 3143, 3091, 3162, 3014, 3020, 3096, 3072, 2958, 2987, 2912, 2822, 2740, 2650, 2510, 2475, 2415, 2488, 2341, 2327, 2179, 2119, 2024, 1913, 1752, 1760, 1570, 1548, 1454, 1414, 1298, 1240, 1152, 1142, 1122, 1009, 1002, 971, 901, 874, 911, 854, 826, 777, 727, 737, 710, 604, 533, 455, 386, 234, 187, 121, 91, 76, 57, 19, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19961, 42265, 259, 120, 74, 86, 54, 60, 45, 53, 44, 34, 39, 33, 26, 36, 38, 32, 28, 40, 30, 35, 31, 38, 27, 16, 27, 23, 22, 24, 22, 18, 24, 21, 13, 23, 39, 24, 22, 31, 24, 20, 19, 22, 25, 21, 39, 78, 148, 238, 349, 547, 703, 965, 1256, 1869, 2791, 3960, 5511, 7600, 9383, 11590, 12830, 13039, 12953, 12404, 11454, 10798, 10219, 9382, 8694, 8049, 7679, 6782, 6221, 5729, 5180, 4679, 4255, 3730, 3525, 3152, 2780, 2507, 2231, 1923, 1710, 1497, 1303, 1118, 942, 868, 722, 636, 592, 487, 421, 407, 345, 294, 238, 188, 211, 151, 148, 117, 80, 87, 73, 84, 55, 53, 55, 42, 48, 37, 41, 44, 69, 64, 60, 59, 46, 46, 45, 61, 71, 64, 75, 63, 69, 52, 53, 39, 36, 38, 34, 40, 42, 35, 35, 37, 40, 36, 32, 33, 46, 42, 42, 41, 30, 22, 20, 14, 14, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20057, 41638, 573, 344, 141, 93, 69, 53, 49, 51, 40, 52, 40, 45, 44, 42, 33, 38, 36, 34, 24, 33, 22, 22, 26, 25, 41, 61, 152, 460, 1124, 2244, 3627, 5198, 7273, 9814, 12207, 13679, 13981, 12880, 11091, 9738, 8561, 8032, 7442, 6956, 6606, 6734, 7064, 6791, 6559, 6382, 5915, 5656, 5280, 4690, 4598, 4223, 3907, 3472, 3035, 2553, 2359, 2147, 1850, 1562, 1327, 1109, 979, 796, 634, 491, 285, 241, 180, 119, 80, 36, 13, 9, 9, 12, 16, 6, 10, 3, 6, 2, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
+  ]
+}
diff --git a/src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_drhagis_default.json b/src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_drhagis_default.json
new file mode 100644
index 00000000..68f9e4eb
--- /dev/null
+++ b/src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_drhagis_default.json
@@ -0,0 +1,16 @@
+{
+  "train": [
+    ["Fundus_Images/4.jpg", [14124, 871213, 7895, 2991, 4619, 1907, 1635, 1481, 1174, 791, 803, 623, 481, 463, 432, 386, 347, 297, 241, 248, 222, 213, 219, 170, 200, 185, 150, 192, 155, 180, 167, 176, 147, 161, 144, 145, 145, 138, 156, 140, 124, 111, 140, 142, 138, 139, 135, 125, 133, 93, 124, 153, 122, 133, 111, 113, 117, 115, 119, 120, 132, 110, 128, 100, 141, 124, 129, 118, 99, 121, 131, 125, 109, 132, 126, 127, 119, 125, 155, 149, 135, 143, 139, 173, 310, 392, 293, 562, 1214, 2196, 3028, 4109, 4911, 4941, 5963, 6409, 6633, 9885, 12316, 11911, 15461, 20557, 22152, 20968, 20156, 20250, 23704, 27584, 37696, 48229, 57064, 57156, 59751, 59837, 55552, 48390, 45464, 44091, 47814, 48076, 52695, 50522, 49055, 53572, 46686, 41277, 40557, 40642, 37160, 37349, 34964, 30139, 27482, 28745, 26495, 29685, 33991, 37637, 36592, 36856, 40782, 45869, 48229, 50069, 46610, 46281, 46417, 47337, 51661, 50117, 50031, 49325, 47060, 49012, 50733, 51728, 56396, 55065, 53431, 53893, 54352, 53887, 55122, 54340, 53736, 52085, 47488, 42966, 40343, 40662, 36995, 34351, 28776, 23826, 20155, 17301, 12601, 12011, 14685, 13482, 13314, 9418, 7254, 4181, 2342, 661, 211, 24, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19712, 875227, 9399, 3260, 1829, 1073, 711, 457, 345, 288, 246, 241, 222, 214, 211, 176, 197, 176, 172, 155, 182, 171, 187, 166, 164, 172, 151, 136, 153, 141, 143, 122, 144, 136, 128, 144, 154, 164, 141, 131, 144, 143, 146, 171, 224, 555, 1688, 4576, 6254, 8327, 12991, 23163, 40312, 59691, 82287, 101094, 116723, 138302, 142899, 130254, 130550, 140912, 144779, 146227, 141142, 137970, 133443, 125155, 114806, 105635, 98543, 88949, 83962, 81389, 71363, 63491, 58722, 49943, 42314, 36776, 33688, 29030, 26388, 24468, 23525, 21418, 18579, 17454, 15810, 15111, 13526, 12035, 11333, 10185, 10670, 9897, 9451, 9369, 9269, 9347, 9731, 8820, 7744, 7252, 6389, 6148, 6346, 5329, 5631, 5923, 5597, 5341, 5112, 4921, 5201, 4698, 4857, 4737, 4875, 4727, 4509, 4422, 4462, 4177, 4116, 3828, 3562, 3313, 2845, 2439, 2109, 1745, 1702, 1460, 1375, 1189, 980, 770, 657, 487, 319, 251, 215, 149, 121, 84, 98, 67, 43, 37, 25, 21, 11, 11, 6, 4, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22996, 870598, 3296, 7622, 2034, 3831, 1657, 762, 615, 414, 344, 254, 209, 200, 196, 173, 171, 153, 177, 188, 217, 364, 994, 3182, 9513, 24029, 46668, 81707, 118603, 132323, 132074, 134741, 144077, 142713, 139331, 138065, 134952, 132271, 140536, 160550, 154730, 139203, 121837, 113686, 101223, 87000, 78528, 66665, 57074, 54702, 48101, 42928, 41229, 37466, 34676, 28693, 27171, 23079, 22485, 19101, 17985, 18297, 15654, 15189, 13857, 13389, 13372, 13405, 12022, 11209, 11023, 10294, 10004, 8123, 8319, 7536, 6871, 6355, 5783, 4901, 4053, 3786, 3243, 3038, 2343, 2067, 1672, 1484, 1020, 825, 663, 522, 453, 376, 376, 301, 257, 277, 207, 218, 197, 187, 178, 135, 145, 116, 109, 103, 97, 107, 79, 69, 46, 51, 41, 26, 15, 22, 11, 8, 4, 5, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/1.jpg", [1736303, 116128, 9201, 5694, 4232, 2619, 2478, 2071, 1859, 1701, 1553, 1344, 1235, 1120, 1015, 987, 916, 897, 820, 768, 715, 693, 666, 675, 670, 571, 578, 561, 538, 510, 473, 511, 467, 440, 487, 492, 431, 445, 404, 425, 461, 446, 421, 405, 396, 373, 381, 427, 604, 703, 741, 959, 923, 853, 1007, 1302, 1676, 2502, 2614, 2713, 2577, 3161, 3532, 3659, 5029, 5737, 6822, 9381, 9348, 10638, 12623, 14150, 14987, 17229, 19161, 18775, 21923, 21911, 22675, 27604, 30348, 32631, 36226, 38514, 44642, 45675, 49501, 53113, 57793, 61365, 64755, 65668, 69928, 74127, 80649, 81418, 83678, 86484, 88692, 87124, 87735, 86710, 85639, 87447, 90757, 93255, 93703, 94310, 95619, 91811, 89769, 88022, 87988, 85664, 88101, 86513, 86420, 87645, 90438, 89988, 87593, 86669, 84144, 82582, 78364, 73866, 70762, 67431, 64205, 63527, 63452, 62333, 61108, 59773, 58980, 57994, 59522, 57729, 58366, 58209, 54922, 53514, 52751, 51363, 51059, 49061, 49173, 47560, 46416, 46407, 47426, 46938, 45022, 46505, 46624, 48930, 50387, 48462, 48503, 49164, 48000, 47706, 46489, 45086, 43982, 44362, 43678, 44642, 43290, 42688, 41576, 40562, 38942, 37357, 38022, 37215, 37102, 36012, 35653, 35630, 34362, 32944, 31286, 29847, 29841, 27924, 27395, 26437, 26167, 24472, 23590, 21908, 21188, 19410, 17806, 16254, 14436, 14190, 13146, 11750, 10245, 8346, 6548, 5753, 5031, 4502, 3593, 2829, 2606, 2214, 2327, 1707, 1410, 1142, 1216, 1227, 1004, 567, 344, 125, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1746900, 123882, 14132, 5381, 2723, 1687, 1264, 1038, 929, 880, 751, 765, 725, 655, 625, 694, 640, 594, 622, 572, 611, 588, 661, 926, 1867, 3484, 3824, 4571, 4490, 6084, 8572, 12775, 19607, 30573, 40729, 52385, 60982, 65247, 71202, 85662, 103237, 123151, 139608, 154863, 160397, 165643, 165735, 170973, 172393, 172415, 174821, 172719, 173587, 176497, 183122, 184613, 186878, 184113, 180211, 175627, 166617, 159136, 151090, 141261, 129313, 118331, 109711, 105989, 104530, 103668, 100601, 96674, 91221, 84126, 76661, 72838, 67361, 65173, 62248, 60208, 57270, 53361, 50963, 49241, 45305, 43349, 41895, 39954, 38239, 37079, 36526, 35957, 35648, 36089, 33444, 32815, 32081, 30409, 27625, 25203, 22249, 20451, 18872, 18257, 17376, 15671, 14924, 13392, 12193, 11513, 9895, 8386, 7368, 7127, 6149, 5715, 5270, 5237, 4988, 4828, 4641, 4405, 4143, 4118, 3677, 3483, 3111, 3030, 2883, 2445, 2123, 2062, 1853, 1675, 1561, 1658, 1679, 1637, 1533, 1380, 1324, 1221, 1188, 1122, 1145, 972, 1061, 1111, 1157, 1247, 1367, 1382, 1547, 1566, 1547, 1504, 1440, 1543, 1572, 1401, 1421, 1269, 1532, 1618, 1523, 1541, 1535, 1847, 1908, 2038, 1722, 1681, 1715, 1034, 656, 509, 459, 421, 450, 284, 250, 301, 160, 123, 129, 111, 91, 97, 65, 56, 57, 54, 57, 43, 28, 18, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1754644, 112738, 16679, 6287, 4687, 2975, 1577, 1126, 887, 776, 708, 689, 671, 671, 653, 658, 605, 632, 657, 727, 988, 1585, 2323, 2936, 3135, 3462, 4724, 7250, 13856, 27281, 42105, 63117, 84373, 100439, 107599, 114486, 119392, 135964, 155028, 175641, 194130, 203029, 212256, 220170, 230914, 240397, 249640, 257018, 254197, 253716, 254612, 241509, 231907, 225973, 227775, 235144, 246133, 253820, 247305, 229714, 195240, 160486, 128379, 99206, 76638, 59150, 46578, 36697, 29528, 22059, 17278, 13656, 10351, 7849, 6153, 5256, 4407, 3850, 3775, 3879, 3958, 3914, 4002, 4015, 4447, 3928, 3947, 3737, 3852, 3631, 3646, 3430, 3506, 3466, 3342, 3429, 3281, 3191, 3383, 3193, 3072, 2957, 2898, 2883, 2961, 2882, 2981, 2990, 2847, 2929, 2623, 2715, 2558, 2415, 2285, 1963, 1950, 1784, 1758, 1546, 1401, 1236, 1078, 1127, 1141, 1267, 1277, 1338, 1386, 1220, 1217, 1203, 1221, 1222, 1051, 1161, 1061, 1075, 921, 890, 798, 1016, 1023, 788, 836, 821, 818, 970, 1006, 911, 1045, 773, 1007, 1179, 1652, 1476, 1600, 1378, 1452, 1092, 609, 231, 201, 203, 239, 221, 200, 192, 96, 54, 53, 41, 15, 5, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/14.jpg", [13984, 855195, 10234, 2754, 5357, 3273, 1906, 2145, 1628, 1263, 1130, 987, 761, 719, 707, 626, 496, 551, 504, 500, 454, 428, 417, 369, 383, 349, 352, 341, 310, 291, 293, 265, 306, 280, 262, 272, 240, 229, 238, 233, 222, 216, 227, 220, 164, 209, 188, 215, 187, 175, 177, 173, 181, 167, 169, 155, 183, 176, 143, 140, 151, 153, 144, 147, 125, 125, 139, 118, 143, 148, 140, 101, 115, 123, 118, 116, 105, 109, 120, 126, 122, 106, 122, 110, 111, 127, 136, 134, 128, 103, 130, 99, 125, 104, 113, 126, 112, 114, 136, 117, 114, 131, 118, 105, 118, 133, 143, 112, 115, 128, 124, 115, 137, 148, 120, 117, 121, 131, 153, 136, 136, 127, 136, 144, 160, 139, 178, 163, 152, 170, 162, 192, 206, 250, 247, 303, 250, 322, 328, 393, 544, 660, 957, 1341, 1737, 1817, 1969, 2456, 2841, 3367, 4015, 4617, 5362, 6314, 7615, 8858, 9875, 11051, 12102, 14741, 17586, 20625, 24081, 27119, 31845, 35440, 39956, 42685, 47991, 52922, 58054, 61356, 66239, 70532, 76624, 81815, 85580, 88302, 90863, 91100, 92959, 94546, 94479, 94154, 92663, 90655, 89108, 87217, 81064, 78281, 72246, 66626, 61748, 56099, 51408, 49155, 47878, 46792, 44684, 43476, 39821, 33629, 31190, 27912, 24988, 22608, 21715, 20432, 20723, 22060, 23690, 24628, 24811, 25901, 25765, 24213, 23755, 23550, 22028, 20497, 19507, 19427, 18087, 16902, 16029, 14839, 13560, 12769, 11504, 10228, 8651, 6761, 5640, 4158, 3307, 2683, 2221, 1938, 1694, 1427, 1278, 1253, 1007, 885, 708, 526, 448, 300, 203, 112, 64, 42, 18, 2, 0, 0, 32070, 860915, 11351, 4417, 2103, 1127, 772, 492, 308, 288, 290, 230, 219, 214, 199, 201, 210, 190, 178, 186, 198, 184, 180, 180, 188, 161, 174, 162, 188, 167, 199, 291, 516, 937, 1234, 1615, 1982, 2459, 3358, 4502, 5785, 7228, 8149, 8745, 9521, 10640, 11784, 13416, 15653, 17756, 19625, 23702, 30696, 41092, 55279, 76306, 105220, 138811, 165390, 187083, 196544, 193509, 188897, 173724, 164001, 148905, 128707, 110651, 95295, 80934, 68551, 56224, 48846, 46153, 43682, 39004, 36229, 33231, 30782, 27641, 25216, 23460, 22653, 21662, 20176, 19799, 19203, 19127, 19214, 19204, 19810, 19861, 19495, 18997, 17732, 16727, 15329, 13801, 11487, 9514, 7166, 5413, 4228, 3303, 2761, 2697, 2493, 2410, 2305, 2059, 1920, 1818, 1806, 1740, 1527, 1318, 1102, 1105, 1062, 1086, 924, 1022, 970, 991, 1118, 1127, 1073, 1171, 1192, 1059, 1074, 1089, 1122, 1164, 1087, 1117, 1082, 745, 753, 717, 804, 897, 822, 969, 1015, 1101, 1080, 1105, 1172, 1129, 1184, 1136, 1107, 1016, 1033, 1059, 1023, 877, 870, 792, 780, 789, 723, 704, 641, 571, 600, 614, 640, 602, 571, 497, 493, 491, 484, 529, 504, 447, 462, 486, 382, 356, 378, 339, 288, 262, 281, 277, 192, 215, 154, 132, 138, 127, 125, 145, 106, 127, 98, 45, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27801, 862122, 4203, 8422, 2711, 4523, 2372, 1342, 1100, 639, 511, 359, 330, 272, 209, 200, 180, 217, 230, 352, 602, 1289, 2239, 2729, 3402, 3495, 3950, 5413, 8532, 16064, 30316, 56106, 95963, 143026, 199566, 252225, 288328, 297956, 295272, 279644, 252061, 210307, 165343, 126189, 93218, 69751, 55395, 44025, 37268, 31412, 28563, 25702, 22306, 19402, 17091, 15193, 13749, 12169, 10500, 8955, 7801, 6816, 5799, 4946, 4016, 3240, 2646, 2357, 1989, 1823, 1678, 1658, 1635, 1498, 1402, 1468, 1449, 1492, 1332, 1262, 1090, 1174, 1281, 1193, 1245, 1043, 1177, 1161, 1228, 1132, 1014, 1058, 966, 1022, 970, 908, 964, 945, 1001, 868, 1021, 852, 944, 1008, 1017, 1207, 1262, 1296, 1137, 1157, 970, 953, 945, 912, 952, 830, 879, 750, 800, 808, 738, 780, 670, 619, 621, 597, 533, 565, 611, 667, 607, 600, 586, 523, 607, 570, 539, 524, 542, 481, 457, 465, 425, 385, 343, 320, 230, 188, 199, 187, 191, 175, 153, 204, 136, 191, 104, 27, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/13.jpg", [12358, 806915, 5995, 3105, 2947, 1548, 1118, 913, 721, 519, 476, 356, 302, 310, 306, 269, 264, 244, 256, 212, 220, 224, 211, 201, 222, 214, 218, 199, 191, 215, 363, 1288, 6896, 17057, 19945, 19137, 19392, 18343, 17560, 19649, 21281, 21957, 20988, 21398, 23643, 25946, 27203, 27760, 29186, 31140, 32539, 33356, 33295, 32179, 32241, 31860, 29821, 27292, 26947, 26037, 26225, 26100, 26334, 26449, 26402, 26632, 26540, 28044, 28873, 29982, 31584, 32096, 33112, 33554, 34284, 34946, 35373, 35515, 35931, 35859, 36181, 36470, 37863, 39662, 42034, 43305, 45527, 47030, 49096, 50848, 51542, 52276, 54811, 54915, 56209, 57921, 58046, 59410, 59215, 58241, 54478, 51810, 48648, 46422, 43097, 39752, 35911, 33700, 31485, 28750, 26277, 24275, 21598, 19563, 18009, 16460, 15700, 14826, 13631, 12633, 12215, 11463, 10837, 10112, 8408, 7282, 6419, 5644, 4868, 4629, 4554, 4319, 4219, 3809, 3800, 3736, 3466, 3236, 3103, 3066, 2901, 2757, 2735, 2552, 2797, 2846, 2907, 2737, 2891, 2693, 2879, 2852, 2841, 2933, 2835, 2866, 2757, 2636, 2472, 2417, 2227, 2360, 2158, 2043, 1958, 1987, 1843, 1625, 1501, 1402, 1193, 1075, 836, 544, 452, 320, 228, 219, 210, 163, 128, 117, 103, 72, 87, 51, 48, 37, 41, 33, 23, 30, 35, 26, 26, 19, 20, 18, 20, 11, 11, 14, 14, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13260, 809075, 7441, 3077, 1733, 1046, 697, 455, 370, 304, 298, 286, 273, 266, 254, 271, 244, 239, 227, 212, 216, 198, 193, 204, 195, 202, 195, 205, 202, 194, 393, 1540, 8782, 16115, 15722, 14849, 17142, 20216, 22921, 28046, 31268, 31429, 29827, 30146, 30945, 34545, 37292, 38753, 40426, 42644, 45002, 46314, 49016, 51744, 54513, 55930, 57985, 59082, 61895, 65174, 68911, 71689, 71859, 73332, 75697, 79791, 83616, 87296, 91502, 95611, 97205, 96528, 92563, 85068, 76897, 66477, 56289, 48518, 42405, 38173, 35318, 33380, 30147, 28561, 26754, 25101, 24040, 22209, 21133, 19818, 18315, 17442, 16332, 15501, 14374, 13586, 12497, 11671, 10754, 9782, 9163, 8079, 7632, 6966, 6258, 5785, 5209, 4571, 3974, 3606, 3428, 3250, 2980, 2825, 2552, 2454, 2253, 2138, 2024, 1847, 1716, 1548, 1399, 1177, 1102, 1062, 1128, 1095, 1179, 1263, 1324, 1554, 1516, 1583, 1405, 1320, 1387, 1342, 1404, 1421, 1517, 1629, 1428, 1557, 1455, 1506, 1436, 1587, 1563, 1470, 1466, 1417, 1285, 1285, 1067, 900, 1071, 894, 807, 758, 795, 848, 915, 915, 798, 649, 790, 759, 721, 583, 503, 447, 385, 384, 289, 227, 160, 97, 67, 34, 14, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14890, 803817, 3737, 6423, 2615, 2953, 1396, 816, 619, 467, 338, 330, 311, 274, 266, 282, 252, 215, 208, 223, 225, 247, 211, 230, 178, 219, 221, 193, 181, 190, 238, 544, 2619, 7902, 10320, 18740, 15919, 20430, 26945, 35485, 41906, 42031, 45444, 49141, 55202, 64009, 72797, 80103, 88746, 98946, 105757, 111277, 115196, 118042, 117537, 117510, 114138, 108492, 105276, 98704, 95729, 89980, 83493, 77046, 69564, 61376, 52751, 45203, 39541, 35231, 32006, 29287, 28025, 26122, 24239, 23655, 22477, 21156, 19632, 18499, 17670, 16667, 15752, 15334, 14632, 13775, 13553, 13045, 12550, 11732, 11321, 10938, 10613, 9831, 9423, 8499, 7578, 6850, 6543, 5926, 5472, 4945, 4658, 4466, 4526, 4111, 3864, 3900, 3482, 3290, 3308, 2731, 2667, 2363, 2230, 1888, 1753, 1660, 1396, 1283, 1144, 1039, 843, 819, 767, 777, 556, 537, 465, 514, 520, 496, 464, 416, 349, 398, 425, 402, 492, 436, 437, 398, 480, 410, 364, 349, 265, 185, 129, 68, 49, 40, 22, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/13.jpg", [12358, 806915, 5995, 3105, 2947, 1548, 1118, 913, 721, 519, 476, 356, 302, 310, 306, 269, 264, 244, 256, 212, 220, 224, 211, 201, 222, 214, 218, 199, 191, 215, 363, 1288, 6896, 17057, 19945, 19137, 19392, 18343, 17560, 19649, 21281, 21957, 20988, 21398, 23643, 25946, 27203, 27760, 29186, 31140, 32539, 33356, 33295, 32179, 32241, 31860, 29821, 27292, 26947, 26037, 26225, 26100, 26334, 26449, 26402, 26632, 26540, 28044, 28873, 29982, 31584, 32096, 33112, 33554, 34284, 34946, 35373, 35515, 35931, 35859, 36181, 36470, 37863, 39662, 42034, 43305, 45527, 47030, 49096, 50848, 51542, 52276, 54811, 54915, 56209, 57921, 58046, 59410, 59215, 58241, 54478, 51810, 48648, 46422, 43097, 39752, 35911, 33700, 31485, 28750, 26277, 24275, 21598, 19563, 18009, 16460, 15700, 14826, 13631, 12633, 12215, 11463, 10837, 10112, 8408, 7282, 6419, 5644, 4868, 4629, 4554, 4319, 4219, 3809, 3800, 3736, 3466, 3236, 3103, 3066, 2901, 2757, 2735, 2552, 2797, 2846, 2907, 2737, 2891, 2693, 2879, 2852, 2841, 2933, 2835, 2866, 2757, 2636, 2472, 2417, 2227, 2360, 2158, 2043, 1958, 1987, 1843, 1625, 1501, 1402, 1193, 1075, 836, 544, 452, 320, 228, 219, 210, 163, 128, 117, 103, 72, 87, 51, 48, 37, 41, 33, 23, 30, 35, 26, 26, 19, 20, 18, 20, 11, 11, 14, 14, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13260, 809075, 7441, 3077, 1733, 1046, 697, 455, 370, 304, 298, 286, 273, 266, 254, 271, 244, 239, 227, 212, 216, 198, 193, 204, 195, 202, 195, 205, 202, 194, 393, 1540, 8782, 16115, 15722, 14849, 17142, 20216, 22921, 28046, 31268, 31429, 29827, 30146, 30945, 34545, 37292, 38753, 40426, 42644, 45002, 46314, 49016, 51744, 54513, 55930, 57985, 59082, 61895, 65174, 68911, 71689, 71859, 73332, 75697, 79791, 83616, 87296, 91502, 95611, 97205, 96528, 92563, 85068, 76897, 66477, 56289, 48518, 42405, 38173, 35318, 33380, 30147, 28561, 26754, 25101, 24040, 22209, 21133, 19818, 18315, 17442, 16332, 15501, 14374, 13586, 12497, 11671, 10754, 9782, 9163, 8079, 7632, 6966, 6258, 5785, 5209, 4571, 3974, 3606, 3428, 3250, 2980, 2825, 2552, 2454, 2253, 2138, 2024, 1847, 1716, 1548, 1399, 1177, 1102, 1062, 1128, 1095, 1179, 1263, 1324, 1554, 1516, 1583, 1405, 1320, 1387, 1342, 1404, 1421, 1517, 1629, 1428, 1557, 1455, 1506, 1436, 1587, 1563, 1470, 1466, 1417, 1285, 1285, 1067, 900, 1071, 894, 807, 758, 795, 848, 915, 915, 798, 649, 790, 759, 721, 583, 503, 447, 385, 384, 289, 227, 160, 97, 67, 34, 14, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14890, 803817, 3737, 6423, 2615, 2953, 1396, 816, 619, 467, 338, 330, 311, 274, 266, 282, 252, 215, 208, 223, 225, 247, 211, 230, 178, 219, 221, 193, 181, 190, 238, 544, 2619, 7902, 10320, 18740, 15919, 20430, 26945, 35485, 41906, 42031, 45444, 49141, 55202, 64009, 72797, 80103, 88746, 98946, 105757, 111277, 115196, 118042, 117537, 117510, 114138, 108492, 105276, 98704, 95729, 89980, 83493, 77046, 69564, 61376, 52751, 45203, 39541, 35231, 32006, 29287, 28025, 26122, 24239, 23655, 22477, 21156, 19632, 18499, 17670, 16667, 15752, 15334, 14632, 13775, 13553, 13045, 12550, 11732, 11321, 10938, 10613, 9831, 9423, 8499, 7578, 6850, 6543, 5926, 5472, 4945, 4658, 4466, 4526, 4111, 3864, 3900, 3482, 3290, 3308, 2731, 2667, 2363, 2230, 1888, 1753, 1660, 1396, 1283, 1144, 1039, 843, 819, 767, 777, 556, 537, 465, 514, 520, 496, 464, 416, 349, 398, 425, 402, 492, 436, 437, 398, 480, 410, 364, 349, 265, 185, 129, 68, 49, 40, 22, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
+  ],
+  "test": [
+    ["Fundus_Images/10.jpg", [186494, 372514, 8382, 3799, 3310, 2182, 1660, 1364, 1171, 1025, 859, 923, 853, 771, 677, 616, 611, 558, 582, 577, 543, 492, 483, 499, 486, 440, 443, 462, 411, 410, 376, 368, 368, 359, 342, 318, 358, 365, 318, 310, 302, 314, 272, 325, 277, 270, 289, 299, 278, 271, 276, 271, 243, 279, 231, 249, 271, 265, 249, 238, 236, 228, 249, 242, 242, 251, 256, 241, 249, 235, 253, 226, 243, 260, 247, 267, 264, 261, 254, 253, 311, 285, 363, 400, 381, 550, 637, 700, 828, 917, 1288, 1681, 1798, 2010, 2568, 2763, 3215, 3802, 3906, 4778, 5744, 6702, 7900, 8364, 8783, 9189, 9546, 10014, 10956, 11660, 13163, 13871, 15033, 15929, 16964, 17239, 18595, 19151, 20483, 20179, 19622, 19598, 20567, 21646, 22194, 24124, 25785, 25808, 26909, 28400, 30272, 31776, 32441, 33152, 34139, 35183, 33633, 35470, 36927, 38777, 40652, 40154, 40341, 41262, 42902, 43871, 43116, 42853, 43719, 45602, 46370, 46325, 47681, 48712, 51857, 56060, 58113, 61220, 61925, 61272, 58928, 57899, 56882, 54890, 51655, 51294, 51511, 52470, 52577, 53258, 53397, 53946, 53745, 54094, 52428, 49867, 48105, 46736, 43574, 42000, 40420, 38812, 38766, 36926, 37245, 36238, 35165, 32416, 30379, 28102, 26374, 25144, 22977, 21298, 20141, 18537, 16326, 13701, 12121, 9643, 7863, 6804, 5296, 4456, 3837, 2777, 2170, 1503, 996, 661, 327, 217, 148, 111, 37, 12, 6, 0, 0, 0, 0, 2, 0, 2, 2, 1, 0, 0, 0, 1, 0, 0, 3, 2, 4, 3, 1, 7, 6, 5, 12, 12, 14, 22, 16, 27, 20, 19, 29, 31, 38, 37, 40, 59, 92, 624, 185732, 374473, 9744, 5589, 3744, 2736, 2202, 1799, 1519, 1410, 1195, 1132, 987, 944, 853, 825, 788, 747, 697, 638, 622, 576, 586, 533, 497, 476, 441, 467, 457, 459, 460, 563, 726, 1160, 1528, 1669, 1935, 2540, 3024, 3406, 4025, 4814, 5464, 6530, 7884, 9511, 11350, 13109, 16144, 20504, 24203, 28387, 31446, 33653, 37817, 43931, 49204, 56415, 62703, 73222, 85292, 100280, 119445, 141924, 162566, 177288, 183674, 183360, 176241, 155854, 134572, 112948, 91561, 77597, 68073, 61216, 58172, 54440, 53679, 50595, 49325, 49769, 48499, 48950, 47881, 47551, 45419, 43067, 40080, 37143, 33753, 30911, 26077, 21133, 15612, 10918, 7431, 5166, 3801, 2692, 2055, 1821, 1349, 1216, 1153, 923, 821, 781, 830, 770, 725, 795, 794, 828, 874, 858, 940, 968, 994, 987, 934, 824, 926, 888, 905, 941, 908, 939, 1081, 951, 774, 762, 582, 477, 275, 99, 62, 47, 39, 41, 25, 35, 38, 29, 29, 26, 25, 20, 17, 17, 17, 7, 10, 16, 6, 7, 13, 8, 7, 10, 12, 5, 9, 10, 10, 11, 12, 9, 19, 10, 16, 14, 12, 14, 17, 14, 9, 18, 12, 18, 11, 8, 11, 15, 12, 15, 11, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 1, 0, 0, 0, 1, 0, 0, 3, 2, 4, 3, 1, 7, 6, 5, 12, 12, 14, 22, 16, 27, 20, 19, 29, 31, 38, 37, 40, 59, 92, 624, 190094, 372236, 5890, 6270, 3220, 2991, 2325, 1958, 1820, 1589, 1556, 1435, 1265, 1215, 1098, 1104, 951, 923, 846, 781, 690, 635, 576, 588, 556, 496, 492, 496, 450, 473, 484, 478, 464, 492, 481, 525, 573, 603, 665, 710, 810, 914, 963, 1103, 1198, 1360, 1743, 2268, 3081, 3850, 5277, 7377, 10485, 13856, 17305, 22231, 28275, 36343, 49155, 68726, 93419, 118160, 135479, 150999, 162962, 169942, 165910, 157241, 142449, 133550, 126289, 120765, 116600, 114573, 116001, 115945, 114649, 113848, 111785, 109399, 99759, 89156, 73316, 59084, 48741, 39242, 31193, 24284, 18602, 13615, 10868, 8247, 7033, 6065, 4795, 4163, 3413, 2921, 2488, 2166, 1992, 1900, 1722, 1522, 1305, 1144, 1075, 1091, 1043, 1044, 971, 1105, 1227, 1252, 1150, 1129, 1022, 1001, 921, 1123, 1126, 1019, 970, 933, 874, 580, 418, 296, 221, 179, 143, 36, 16, 20, 13, 21, 16, 17, 16, 17, 18, 20, 16, 13, 19, 10, 16, 20, 12, 13, 7, 8, 6, 5, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 1, 0, 0, 0, 1, 0, 0, 3, 2, 4, 3, 1, 7, 6, 5, 12, 12, 14, 22, 16, 27, 20, 19, 29, 31, 38, 37, 40, 59, 92, 624]],
+    ["Fundus_Images/9.jpg", [14359, 878934, 6960, 3020, 3623, 1581, 1212, 1028, 723, 532, 418, 434, 321, 343, 286, 263, 237, 259, 220, 245, 202, 201, 166, 167, 219, 158, 154, 158, 174, 171, 180, 162, 138, 178, 146, 162, 126, 140, 124, 139, 141, 153, 133, 129, 148, 142, 154, 133, 141, 149, 131, 132, 134, 128, 157, 141, 162, 135, 152, 139, 147, 145, 141, 131, 132, 138, 131, 141, 139, 154, 192, 249, 389, 650, 1201, 1910, 2869, 4522, 7302, 11321, 15666, 21352, 27549, 34443, 39832, 46288, 49852, 51487, 52106, 54099, 53901, 54864, 57969, 61670, 63855, 64043, 66042, 69846, 74821, 80022, 81100, 83364, 86411, 87682, 88977, 89995, 89053, 86661, 85650, 88491, 89425, 89771, 90815, 90603, 89461, 83299, 76804, 70303, 64910, 61633, 55860, 51584, 46360, 41052, 36054, 31534, 28283, 25821, 22532, 20340, 17938, 16525, 15137, 13089, 12250, 11507, 10460, 9497, 8678, 8232, 7865, 7245, 7014, 6687, 6417, 6094, 6214, 6031, 6081, 5513, 5157, 4904, 4737, 4388, 4510, 4152, 4193, 3556, 3296, 3090, 2722, 2571, 2322, 2286, 2148, 2001, 1665, 1580, 1668, 1375, 1064, 708, 478, 357, 262, 182, 131, 78, 44, 14, 6, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15874, 883588, 7481, 2874, 1591, 991, 601, 441, 324, 264, 249, 261, 219, 223, 233, 215, 211, 187, 195, 197, 171, 184, 184, 183, 173, 165, 165, 141, 177, 151, 158, 137, 147, 144, 150, 143, 129, 143, 138, 190, 452, 958, 1602, 2618, 3088, 4094, 5016, 5737, 6189, 6811, 6993, 7312, 7920, 8562, 9139, 10953, 13001, 15652, 21145, 30908, 44085, 59299, 71747, 84691, 99804, 122350, 141095, 156931, 173742, 190007, 205338, 211676, 203838, 187840, 166145, 144997, 126591, 110251, 95261, 82010, 68521, 57611, 48748, 41790, 35427, 29676, 24560, 20585, 17051, 13994, 12023, 10654, 9505, 8749, 8470, 7822, 7116, 6644, 6188, 5361, 4833, 4228, 3988, 3621, 3382, 2805, 2451, 2207, 1855, 1558, 1440, 1405, 1411, 1234, 1174, 1043, 910, 962, 865, 842, 760, 868, 826, 835, 846, 929, 858, 772, 640, 686, 613, 653, 760, 752, 707, 723, 667, 738, 693, 617, 554, 548, 542, 517, 484, 437, 467, 438, 499, 576, 509, 508, 520, 457, 464, 564, 561, 570, 585, 545, 495, 441, 476, 613, 634, 683, 566, 582, 620, 545, 439, 339, 221, 137, 115, 136, 117, 91, 70, 44, 30, 28, 29, 17, 13, 13, 12, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18433, 877096, 3564, 8116, 2057, 2943, 1270, 569, 490, 374, 256, 266, 230, 228, 210, 179, 194, 199, 189, 223, 181, 144, 172, 168, 175, 140, 165, 157, 156, 164, 149, 141, 156, 194, 326, 373, 592, 762, 922, 1209, 1278, 1982, 2650, 3812, 5212, 7214, 10441, 15416, 22571, 34510, 50118, 75631, 111838, 149164, 182039, 201632, 216204, 219040, 213046, 203752, 187501, 169094, 149915, 131077, 113266, 97752, 85770, 78575, 73191, 67694, 63211, 55399, 48148, 42529, 37223, 30389, 25188, 20077, 15720, 13049, 10748, 9075, 7441, 6608, 5929, 5127, 4561, 4053, 3752, 3374, 2965, 2584, 2370, 2143, 2189, 2016, 2019, 1928, 1748, 1633, 1593, 1374, 1200, 1172, 1082, 1104, 1113, 1158, 1268, 1180, 1048, 1023, 996, 971, 858, 830, 850, 723, 670, 643, 611, 643, 582, 500, 593, 437, 457, 358, 400, 386, 334, 367, 350, 347, 353, 345, 409, 382, 390, 369, 466, 369, 388, 419, 478, 485, 512, 501, 424, 559, 489, 438, 381, 400, 390, 403, 402, 445, 393, 436, 570, 512, 607, 475, 368, 322, 228, 176, 152, 140, 150, 134, 91, 73, 71, 50, 60, 55, 36, 39, 26, 27, 15, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/38.jpg", [8549, 341337, 61147, 59918, 17686, 7192, 4821, 4097, 3900, 3783, 3662, 3598, 3685, 3489, 3477, 3046, 3242, 3058, 2794, 2929, 2796, 2768, 2575, 2598, 2639, 2548, 2452, 2375, 2533, 2819, 2716, 2864, 2682, 2517, 2459, 2385, 2335, 2300, 2392, 2424, 2474, 2576, 2501, 2403, 2596, 2724, 2825, 2756, 2870, 2849, 2961, 3173, 3210, 3453, 3794, 5216, 8548, 12688, 16971, 20847, 22461, 22553, 18671, 15895, 15913, 14555, 16538, 18351, 20852, 19570, 17461, 17586, 21007, 24306, 27855, 31362, 35830, 32486, 29088, 24275, 22196, 23692, 23551, 26259, 29227, 32560, 38112, 44930, 53050, 62213, 67256, 67921, 70892, 75287, 78492, 81010, 83532, 86795, 88807, 86290, 83915, 83063, 81743, 75425, 70838, 67006, 64716, 65417, 64328, 59173, 55048, 50057, 45149, 43774, 42115, 37487, 33670, 32404, 29200, 27480, 26105, 24752, 24923, 23990, 22482, 21746, 21569, 21512, 21520, 20976, 19866, 19913, 19608, 18997, 18542, 19597, 20091, 20678, 20792, 20376, 18980, 18631, 17605, 16911, 17553, 17333, 17080, 17250, 17508, 17324, 17049, 16815, 15897, 15744, 15033, 14901, 14121, 14352, 13677, 13228, 13392, 12884, 12484, 11910, 11797, 11655, 11343, 11133, 11247, 10959, 11080, 10255, 9399, 8089, 6751, 6562, 5683, 5207, 4380, 3849, 3699, 2924, 2379, 1694, 1436, 1220, 1188, 1066, 1017, 983, 906, 930, 842, 820, 631, 626, 490, 420, 291, 239, 180, 109, 78, 46, 50, 34, 25, 19, 15, 24, 27, 15, 18, 30, 10, 21, 16, 21, 15, 11, 17, 17, 14, 17, 21, 19, 14, 11, 16, 16, 18, 22, 10, 9, 7, 5, 7, 8, 14, 22, 19, 17, 30, 25, 28, 35, 40, 39, 59, 49, 82, 93, 71, 118, 200, 1083, 7798, 340107, 57552, 61149, 22458, 7586, 5484, 4933, 4654, 4844, 5121, 5457, 5549, 5950, 5549, 5419, 5308, 4971, 5261, 5373, 5926, 6025, 6551, 8037, 9328, 10254, 11093, 11871, 12580, 15689, 22913, 40341, 65546, 92780, 121965, 144176, 152886, 157018, 159499, 159974, 146585, 133280, 120479, 106659, 94587, 87047, 80244, 75325, 74643, 72541, 72289, 70869, 75668, 78783, 80848, 79504, 76545, 69381, 61163, 53594, 50200, 46085, 43229, 42650, 39924, 37992, 37296, 35059, 33315, 31306, 28926, 26760, 26026, 24762, 22463, 20394, 18511, 16542, 15170, 13663, 12924, 12561, 12219, 12121, 12033, 12146, 11376, 10978, 9820, 8781, 9042, 8675, 8702, 8893, 8408, 8361, 7854, 6673, 5399, 4904, 5348, 4514, 4087, 4256, 3691, 3751, 3682, 3042, 2651, 1738, 1371, 1066, 1148, 1066, 992, 847, 783, 794, 782, 885, 911, 880, 878, 972, 935, 1127, 1022, 1013, 1064, 1168, 1041, 1175, 1120, 1038, 988, 957, 820, 766, 687, 633, 582, 566, 573, 469, 465, 336, 313, 340, 339, 327, 332, 339, 328, 350, 350, 306, 343, 391, 351, 369, 346, 356, 381, 459, 374, 338, 209, 151, 128, 86, 49, 34, 40, 46, 21, 28, 21, 25, 21, 30, 35, 20, 22, 25, 23, 19, 24, 20, 11, 21, 18, 22, 18, 22, 16, 21, 22, 16, 24, 18, 15, 20, 19, 19, 10, 20, 17, 16, 16, 22, 14, 17, 15, 23, 27, 20, 14, 10, 20, 17, 14, 12, 12, 6, 3, 0, 1, 0, 2, 2, 1, 6, 3, 6, 7, 5, 7, 8, 14, 22, 19, 17, 30, 25, 28, 35, 40, 39, 59, 49, 82, 93, 71, 118, 200, 1083, 8384, 338950, 49855, 53459, 14719, 8585, 4617, 4939, 5237, 4447, 4028, 3686, 3731, 3750, 3827, 4057, 4331, 4305, 4629, 4746, 5450, 6249, 8081, 10209, 14013, 18579, 25623, 36034, 54758, 88688, 138943, 198488, 239520, 236074, 199384, 161301, 132797, 111920, 101880, 95009, 94100, 97477, 100864, 99404, 99579, 93240, 89097, 86021, 85961, 82690, 78672, 74599, 66188, 62228, 54620, 47793, 42487, 40698, 34966, 30583, 29072, 26588, 24496, 20923, 19438, 18499, 16444, 16392, 14910, 12705, 11399, 10098, 10187, 9123, 8764, 7654, 7564, 7679, 7469, 7032, 7117, 6838, 6592, 6290, 6380, 6126, 6487, 6433, 6645, 6181, 7097, 6553, 6926, 6730, 6606, 6717, 6493, 6378, 6509, 6310, 4978, 4530, 4388, 3964, 3613, 3270, 3478, 3637, 2950, 2522, 2489, 2478, 2388, 2317, 2237, 2256, 2405, 2020, 1870, 2085, 2193, 2126, 2088, 1628, 1151, 641, 506, 436, 432, 377, 368, 357, 391, 371, 347, 390, 369, 350, 313, 326, 220, 300, 299, 358, 272, 141, 118, 106, 46, 37, 35, 30, 23, 26, 20, 19, 29, 24, 19, 18, 19, 27, 22, 25, 25, 25, 23, 24, 23, 18, 15, 22, 17, 25, 26, 19, 19, 16, 22, 18, 20, 20, 22, 18, 15, 15, 16, 18, 18, 19, 21, 11, 18, 19, 11, 13, 22, 17, 21, 17, 24, 22, 25, 18, 18, 20, 11, 16, 19, 11, 10, 4, 6, 5, 4, 4, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 2, 2, 1, 6, 3, 6, 7, 5, 7, 8, 14, 22, 19, 17, 30, 25, 28, 35, 40, 39, 59, 49, 82, 93, 71, 118, 200, 1083]],
+    ["Fundus_Images/8.jpg", [14520, 865298, 7870, 2472, 4673, 2148, 1543, 1570, 1356, 1019, 1056, 917, 778, 723, 668, 587, 527, 528, 417, 395, 407, 364, 322, 313, 286, 257, 227, 233, 214, 217, 222, 239, 195, 222, 159, 178, 179, 173, 153, 141, 155, 140, 145, 156, 151, 157, 142, 152, 128, 112, 132, 130, 114, 135, 114, 112, 112, 126, 125, 129, 126, 118, 119, 119, 114, 123, 111, 137, 99, 111, 102, 118, 117, 109, 130, 102, 108, 130, 107, 132, 132, 109, 112, 103, 119, 121, 97, 119, 111, 96, 115, 117, 103, 107, 121, 103, 114, 100, 94, 109, 101, 115, 112, 122, 124, 105, 113, 132, 141, 148, 138, 121, 122, 142, 125, 126, 136, 160, 149, 196, 250, 364, 774, 1710, 1708, 2254, 2473, 3086, 2738, 3208, 3157, 4704, 6243, 7388, 9139, 12156, 15689, 20271, 24961, 31146, 37560, 45279, 52188, 58102, 64267, 66222, 69210, 70368, 79707, 79581, 87836, 100813, 109064, 110976, 107750, 100910, 97668, 96969, 98387, 96738, 96747, 99043, 100011, 107429, 112646, 114700, 115094, 112332, 106120, 96828, 89213, 81102, 73656, 62600, 54742, 44261, 32263, 23762, 17917, 13089, 8718, 5602, 3411, 1710, 746, 327, 58, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23875, 869348, 10791, 3548, 1760, 1038, 681, 503, 380, 288, 284, 264, 214, 235, 225, 181, 192, 186, 211, 195, 176, 185, 167, 167, 165, 147, 140, 162, 144, 158, 154, 143, 131, 148, 139, 156, 168, 255, 470, 743, 915, 863, 808, 1091, 1477, 2212, 2739, 3419, 4040, 4690, 5042, 5273, 5773, 5868, 6230, 7004, 8420, 11918, 19528, 28271, 33245, 35646, 39875, 47353, 53307, 57920, 64813, 67397, 72180, 76815, 84201, 95409, 103254, 116939, 129737, 140132, 140724, 138313, 129264, 123072, 113487, 104634, 97177, 90080, 82463, 76199, 70324, 65089, 61493, 56014, 52567, 49661, 45166, 42593, 38352, 35032, 31439, 27595, 25756, 23254, 21678, 19050, 17890, 16790, 16449, 15517, 14420, 14372, 13580, 12090, 11305, 10096, 8260, 7651, 6850, 6415, 6009, 6260, 6209, 5419, 4895, 4655, 4251, 3798, 3263, 3243, 2998, 2888, 2604, 2616, 2284, 2192, 2074, 1897, 1690, 1533, 1226, 1019, 1019, 909, 953, 857, 875, 848, 843, 824, 718, 644, 566, 481, 452, 438, 356, 307, 253, 188, 162, 161, 171, 192, 224, 161, 143, 106, 85, 78, 60, 34, 39, 29, 28, 26, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17344, 873434, 4250, 7502, 2626, 3131, 1449, 849, 650, 445, 365, 316, 285, 237, 217, 213, 214, 217, 194, 184, 179, 169, 195, 172, 166, 154, 172, 151, 165, 173, 124, 145, 168, 169, 229, 361, 445, 680, 916, 1024, 1045, 1118, 1250, 1121, 1071, 1028, 931, 892, 1120, 1336, 1796, 2498, 3297, 4295, 6262, 8558, 12862, 18750, 29684, 46664, 69432, 106024, 146636, 178765, 196148, 192447, 180691, 169543, 161392, 155736, 149021, 137176, 123143, 112763, 102679, 92801, 82008, 69597, 59852, 55515, 51986, 49025, 44434, 43915, 40009, 38264, 37048, 34356, 30549, 27407, 23563, 21901, 20778, 18079, 15938, 13413, 12518, 11710, 9984, 8612, 7767, 6716, 6079, 5478, 4875, 4217, 3419, 3094, 2723, 2659, 2451, 2459, 2653, 2470, 2871, 2673, 2577, 2484, 2722, 2583, 2823, 2811, 2855, 2615, 2477, 2690, 2665, 2389, 2176, 2043, 2067, 2115, 1709, 1508, 1309, 1068, 1050, 960, 860, 741, 649, 634, 655, 572, 510, 588, 528, 483, 390, 367, 339, 353, 315, 313, 261, 218, 192, 192, 154, 124, 99, 78, 59, 61, 50, 24, 29, 15, 15, 22, 16, 16, 13, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
+    ["Fundus_Images/39.jpg", [12102, 879953, 6372, 3140, 3369, 1549, 1311, 1116, 922, 638, 620, 539, 371, 415, 338, 295, 294, 272, 272, 224, 192, 196, 212, 191, 190, 205, 177, 172, 168, 173, 165, 179, 156, 149, 160, 161, 177, 167, 159, 173, 151, 154, 148, 145, 164, 124, 141, 131, 134, 142, 138, 141, 153, 142, 140, 153, 155, 222, 407, 473, 678, 890, 1333, 2261, 4087, 6380, 8499, 10764, 13217, 15567, 16869, 18504, 20388, 23172, 25091, 26705, 28421, 30090, 31872, 33153, 31898, 31343, 31429, 31174, 31833, 33447, 34135, 34650, 34342, 34456, 35279, 35307, 34802, 35430, 35122, 35637, 36523, 38216, 39658, 39365, 40189, 41238, 43158, 44113, 45745, 46235, 46688, 47054, 47626, 46723, 47421, 47450, 47418, 47320, 47538, 49207, 48536, 48068, 47403, 46747, 46587, 46622, 45536, 44848, 45072, 44889, 44795, 44479, 43917, 43521, 43246, 42746, 41017, 40508, 38262, 37899, 36798, 36166, 34935, 33871, 34049, 32804, 31806, 29827, 28805, 27112, 25197, 23760, 23164, 21953, 20919, 19877, 18896, 17317, 16724, 16154, 15920, 14681, 13910, 13648, 13415, 13072, 12450, 12183, 11667, 11090, 10510, 10603, 9666, 7893, 7194, 6223, 4674, 3128, 2522, 1730, 1457, 960, 657, 253, 118, 45, 21, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16418, 882794, 6998, 2916, 1656, 958, 606, 418, 332, 270, 224, 235, 238, 210, 227, 204, 209, 191, 212, 214, 204, 167, 169, 170, 148, 146, 164, 179, 163, 164, 159, 144, 177, 163, 137, 171, 144, 166, 150, 148, 142, 124, 130, 153, 136, 245, 499, 1080, 1949, 3175, 5178, 7388, 9639, 13066, 17906, 24864, 36349, 50311, 70238, 94614, 122016, 147720, 171049, 183062, 183779, 180172, 172133, 162325, 151599, 141967, 131997, 121700, 113417, 103695, 94649, 86402, 78990, 70962, 64242, 58562, 52547, 48121, 42967, 39136, 34944, 30780, 27005, 23873, 21017, 18148, 15929, 13871, 12060, 10692, 9344, 8209, 6953, 6267, 5612, 5069, 4250, 3576, 3101, 2802, 2342, 2074, 1829, 1370, 1157, 1055, 974, 884, 827, 787, 683, 617, 625, 717, 769, 814, 910, 783, 687, 695, 744, 849, 1021, 978, 932, 979, 952, 934, 710, 683, 594, 494, 532, 553, 595, 577, 483, 468, 494, 527, 519, 592, 589, 623, 622, 606, 462, 361, 341, 294, 204, 144, 67, 31, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20732, 876463, 3599, 6712, 1882, 2691, 1107, 605, 445, 361, 255, 230, 230, 221, 218, 195, 189, 187, 200, 165, 150, 158, 182, 179, 192, 279, 544, 1215, 3172, 7387, 15428, 27374, 45534, 68373, 94828, 124097, 152687, 176974, 187065, 184529, 171083, 153283, 136722, 123916, 113282, 104460, 100171, 98404, 98630, 98501, 96602, 93970, 88768, 82118, 77692, 71929, 66985, 63430, 58505, 52706, 46668, 40910, 35766, 32741, 28815, 25039, 21269, 17951, 15760, 12576, 10906, 8402, 6226, 4733, 3663, 2761, 2303, 1868, 1443, 1052, 797, 645, 526, 421, 325, 244, 196, 150, 109, 71, 63, 40, 50, 32, 24, 16, 18, 10, 12, 16, 8, 6, 1, 2, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
+  ]
+}
diff --git a/src/mednet/libs/segmentation/tests/test_drhagis.py b/src/mednet/libs/segmentation/tests/test_drhagis.py
new file mode 100644
index 00000000..48001248
--- /dev/null
+++ b/src/mednet/libs/segmentation/tests/test_drhagis.py
@@ -0,0 +1,132 @@
+# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+"""Tests for drhagis dataset."""
+
+import importlib
+
+import pytest
+from click.testing import CliRunner
+
+
+def id_function(val):
+    if isinstance(val, dict):
+        return str(val)
+    return repr(val)
+
+
+@pytest.mark.parametrize(
+    "split,lengths",
+    [
+        ("default", dict(train=19, test=20)),
+    ],
+    ids=id_function,  # just changes how pytest prints it
+)
+def test_protocol_consistency(
+    database_checkers,
+    split: str,
+    lengths: dict[str, int],
+):
+    from mednet.libs.common.data.split import make_split
+
+    database_checkers.check_split(
+        make_split("mednet.libs.segmentation.config.data.drhagis", f"{split}.json"),
+        lengths=lengths,
+    )
+
+
+@pytest.mark.skip_if_rc_var_not_set("datadir.drhagis")
+def test_database_check():
+    from mednet.libs.segmentation.scripts.database import check
+
+    runner = CliRunner()
+    result = runner.invoke(check, ["drhagis"])
+    assert (
+        result.exit_code == 0
+    ), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
+
+
+@pytest.mark.skip_if_rc_var_not_set("datadir.drhagis")
+@pytest.mark.parametrize(
+    "dataset",
+    [
+        "train",
+        "test",
+    ],
+)
+@pytest.mark.parametrize(
+    "name",
+    [
+        "default",
+    ],
+)
+def test_loading(database_checkers, name: str, dataset: str):
+    datamodule = importlib.import_module(
+        f".{name}",
+        "mednet.libs.segmentation.config.data.drhagis",
+    ).datamodule
+
+    datamodule.model_transforms = []  # should be done before setup()
+    datamodule.setup("predict")  # sets up all datasets
+
+    loader = datamodule.predict_dataloader()[dataset]
+
+    limit = 3  # limit load checking
+    for batch in loader:
+        if limit == 0:
+            break
+        database_checkers.check_loaded_batch(
+            batch,
+            batch_size=1,
+            color_planes=3,
+            expected_num_targets=1,
+        )
+        limit -= 1
+
+
+@pytest.mark.skip_if_rc_var_not_set("datadir.drhagis")
+def test_raw_transforms_image_quality(database_checkers, datadir):
+    reference_histogram_file = str(
+        datadir / "histograms/raw_data/histograms_drhagis_default.json",
+    )
+
+    datamodule = importlib.import_module(
+        ".default",
+        "mednet.libs.segmentation.config.data.drhagis",
+    ).datamodule
+
+    datamodule.model_transforms = []
+    datamodule.setup("predict")
+
+    database_checkers.check_image_quality(datamodule, reference_histogram_file)
+
+
+@pytest.mark.skip_if_rc_var_not_set("datadir.drhagis")
+@pytest.mark.parametrize(
+    "model_name",
+    ["lwnet"],
+)
+def test_model_transforms_image_quality(database_checkers, datadir, model_name):
+    reference_histogram_file = str(
+        datadir / f"histograms/models/histograms_{model_name}_drhagis_default.json",
+    )
+
+    datamodule = importlib.import_module(
+        ".default",
+        "mednet.libs.segmentation.config.data.drhagis",
+    ).datamodule
+
+    model = importlib.import_module(
+        f".{model_name}",
+        "mednet.libs.segmentation.config.models",
+    ).model
+
+    datamodule.model_transforms = model.model_transforms
+    datamodule.setup("predict")
+
+    database_checkers.check_image_quality(
+        datamodule,
+        reference_histogram_file,
+        compare_type="statistical",
+        pearson_coeff_threshold=0.005,
+    )
-- 
GitLab