-
Notifications
You must be signed in to change notification settings - Fork 1
/
loadnpy.py
84 lines (65 loc) · 2.91 KB
/
loadnpy.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
82
83
84
import numpy as np
import torch
from PIL import Image
from config import Config as cg
from torch.utils.data import Dataset
from torchvision import transforms
torch.manual_seed(1) # reproducible
class ImageDataset(Dataset):
def __init__(self, image, label):
self.image = np.load(image) # 加载npy数据
self.label = np.load(label)
self.transforms = transforms.Compose([transforms.ToTensor()]) # 转为tensor形式
def __getitem__(self, index):
# cv数据集上使用
image = np.array(self.image, dtype=np.float32)
# batchs = image.shape[0]
# image = np.reshape(image, newshape=[batchs, cg.image_size, cg.image_size, cg.image_channel])
# image = image[index, :, :, :]
# image = Image.fromarray(np.uint8(image))
# image = self.transforms(image)
#ivus图像使用:
batchs = image.shape[0]
image = np.reshape(image, newshape=[batchs, cg.image_size, cg.image_size, cg.image_channel])
image = torch.from_numpy(image)
image = image.permute(0, 3, 1, 2)
image = image[index, :, :, :]
image = images_preprocessing(image)
label = np.array(self.label, dtype=np.float32)
labelbatchs = label.shape[0]
label = np.reshape(label, newshape=[labelbatchs, cg.image_size, cg.image_size, 1])
label = label[index, :, :, :]
label = np.squeeze(label)
label = Image.fromarray(np.uint8(label))
label = self.transforms(label)
return image, label
def __len__(self):
image = np.array(self.image, dtype=np.float32)
imagelength = image.shape[0]
return imagelength # 返回数据的总个数
class ImageDataset_pred(Dataset):
def __init__(self, image):
self.image = np.load(image) # 加载npy数据
self.transforms = transforms.Compose([transforms.ToTensor()]) # 转为tensor形式
def __getitem__(self, index):
# cv数据集上使用
image = np.array(self.image, dtype=np.float32)
batchs = image.shape[0]
image = np.reshape(image, newshape=[batchs, 256, 256, 3])
image = torch.from_numpy(image)
image = image.permute(0, 3, 1, 2)
image = image[index, :, :, :]
image = images_preprocessing(image)
return image
def __len__(self):
image = np.array(self.image, dtype=np.float32)
imagelength = image.shape[0]
return imagelength
def images_preprocessing(images):
images[2, :, :] -= torch.mean(images[2,:,:])
images[1, :, :] -= torch.mean(images[1,:,:])
images[0, :, :] -= torch.mean(images[0,:,:])
images[2, :, :] /= ( torch.std(images[2,:,:], unbiased=False) + 1e-12)
images[1, :, :] /= ( torch.std(images[1,:,:], unbiased=False) + 1e-12)
images[0, :, :] /= ( torch.std(images[0,:,:], unbiased=False) + 1e-12)
return images