|
11 | 11 |
|
12 | 12 | from __future__ import annotations |
13 | 13 |
|
14 | | -from typing import Any, Dict, List, Optional, Sequence, Tuple, TYPE_CHECKING, Union |
| 14 | +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Sequence, Tuple, Union |
| 15 | + |
15 | 16 | from monai.transforms import Compose |
16 | 17 |
|
| 18 | +from .data_dicts import ( |
| 19 | + create_data_dicts_from_paths, |
| 20 | + create_volume_data_dicts, |
| 21 | +) |
17 | 22 | from .dataset_base import ( |
18 | | - MonaiConnectomicsDataset, |
19 | 23 | MonaiCachedConnectomicsDataset, |
| 24 | + MonaiConnectomicsDataset, |
20 | 25 | MonaiPersistentConnectomicsDataset, |
21 | 26 | ) |
22 | 27 | from .dataset_tile import ( |
23 | | - MonaiTileDataset, |
24 | 28 | MonaiCachedTileDataset, |
| 29 | + MonaiTileDataset, |
25 | 30 | ) |
26 | 31 |
|
27 | 32 | if TYPE_CHECKING: |
28 | | - from .dataset_volume import MonaiVolumeDataset, MonaiCachedVolumeDataset |
| 33 | + from .dataset_volume import MonaiCachedVolumeDataset, MonaiVolumeDataset |
29 | 34 |
|
30 | 35 |
|
31 | 36 | __all__ = [ |
|
40 | 45 | ] |
41 | 46 |
|
42 | 47 |
|
43 | | -# ============================================================================ |
44 | | -# Data Dictionary Creation |
45 | | -# ============================================================================ |
46 | | - |
47 | | - |
48 | | -def create_data_dicts_from_paths( |
49 | | - image_paths: List[str], |
50 | | - label_paths: Optional[List[str]] = None, |
51 | | - mask_paths: Optional[List[str]] = None, |
52 | | -) -> List[Dict[str, str]]: |
53 | | - """ |
54 | | - Create MONAI-style data dictionaries from file paths. |
55 | | -
|
56 | | - Args: |
57 | | - image_paths: List of image file paths |
58 | | - label_paths: Optional list of label file paths |
59 | | - mask_paths: Optional list of mask file paths |
60 | | -
|
61 | | - Returns: |
62 | | - List of dictionaries with 'image', 'label', and/or 'mask' keys |
63 | | -
|
64 | | - Examples: |
65 | | - >>> image_paths = ['img1.h5', 'img2.h5'] |
66 | | - >>> label_paths = ['lbl1.h5', 'lbl2.h5'] |
67 | | - >>> data_dicts = create_data_dicts_from_paths(image_paths, label_paths) |
68 | | - >>> # [{'image': 'img1.h5', 'label': 'lbl1.h5'}, ...] |
69 | | - """ |
70 | | - data_dicts = [] |
71 | | - |
72 | | - for i, image_path in enumerate(image_paths): |
73 | | - data_dict = {"image": image_path} |
74 | | - |
75 | | - if label_paths is not None: |
76 | | - data_dict["label"] = label_paths[i] |
77 | | - |
78 | | - if mask_paths is not None: |
79 | | - data_dict["mask"] = mask_paths[i] |
80 | | - |
81 | | - data_dicts.append(data_dict) |
82 | | - |
83 | | - return data_dicts |
84 | | - |
85 | | - |
86 | | -def create_volume_data_dicts( |
87 | | - image_paths: List[str], |
88 | | - label_paths: Optional[List[str]] = None, |
89 | | - mask_paths: Optional[List[str]] = None, |
90 | | -) -> List[Dict[str, str]]: |
91 | | - """ |
92 | | - Create MONAI data dictionaries for volume datasets. |
93 | | -
|
94 | | - This is a convenience wrapper around create_data_dicts_from_paths |
95 | | - for volume-specific use cases. |
96 | | -
|
97 | | - Args: |
98 | | - image_paths: List of image volume file paths |
99 | | - label_paths: Optional list of label volume file paths |
100 | | - mask_paths: Optional list of valid mask file paths |
101 | | -
|
102 | | - Returns: |
103 | | - List of MONAI-style data dictionaries |
104 | | -
|
105 | | - Examples: |
106 | | - >>> data_dicts = create_volume_data_dicts(['vol1.tif'], ['lbl1.tif']) |
107 | | - """ |
108 | | - return create_data_dicts_from_paths( |
109 | | - image_paths=image_paths, |
110 | | - label_paths=label_paths, |
111 | | - mask_paths=mask_paths, |
112 | | - ) |
113 | | - |
114 | | - |
115 | 48 | def create_tile_data_dicts_from_json( |
116 | 49 | volume_json: str, |
117 | 50 | label_json: Optional[str] = None, |
@@ -403,7 +336,7 @@ def create_volume_dataset( |
403 | 336 | ... ) |
404 | 337 | """ |
405 | 338 | # Lazy import to avoid circular dependency during module import |
406 | | - from .dataset_volume import MonaiVolumeDataset, MonaiCachedVolumeDataset |
| 339 | + from .dataset_volume import MonaiCachedVolumeDataset, MonaiVolumeDataset |
407 | 340 |
|
408 | 341 | if dataset_type == "cached": |
409 | 342 | return MonaiCachedVolumeDataset( |
|
0 commit comments