forked from PaddlePaddle/PaddleSeg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lung_coronavirus.py
81 lines (67 loc) · 2.65 KB
/
lung_coronavirus.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import sys
import numpy as np
sys.path.append(
os.path.join(os.path.dirname(os.path.realpath(__file__)), "../.."))
from medicalseg.cvlibs import manager
from medicalseg.transforms import Compose
from medicalseg.datasets import MedicalDataset
URL = ' ' # todo: add coronavirus url after preprocess
@manager.DATASETS.add_component
class LungCoronavirus(MedicalDataset):
"""
The Lung cornavirus dataset is ...(todo: add link and description)
Args:
dataset_root (str): The dataset directory. Default: None
result_root(str): The directory to save the result file. Default: None
transforms (list): Transforms for image.
mode (str, optional): Which part of dataset to use. it is one of ('train', 'val'). Default: 'train'.
Examples:
transforms=[]
dataset_root = "data/lung_coronavirus/lung_coronavirus_phase0/"
dataset = LungCoronavirus(dataset_root=dataset_root, transforms=[], num_classes=3, mode="train")
for data in dataset:
img, label = data
print(img.shape, label.shape) # (1, 128, 128, 128) (128, 128, 128)
print(np.unique(label))
"""
def __init__(self,
dataset_root=None,
result_dir=None,
transforms=None,
num_classes=None,
mode='train',
ignore_index=255,
dataset_json_path=""):
super(LungCoronavirus, self).__init__(
dataset_root,
result_dir,
transforms,
num_classes,
mode,
ignore_index,
data_URL=URL,
dataset_json_path=dataset_json_path)
if __name__ == "__main__":
dataset = LungCoronavirus(
dataset_root="data/lung_coronavirus/lung_coronavirus_phase0",
result_dir="data/lung_coronavirus/lung_coronavirus_phase1",
transforms=[],
mode="train",
num_classes=23)
for item in dataset:
img, label = item
print(img.dtype, label.dtype)