3

我正在处理一些由于发布图像的声誉限制而无法在此处发布的激光雷达数据图像。但是,当使用 pytorch ImageFolder 和 Dataloader 加载相同的图像时,唯一的转换是将图像转换为张量,似乎存在一些极端的阈值,我似乎无法找到造成这种情况的原因。

下面是我显示第一张图片的方式:

dataset = gdal.Open(dir)

print(dataset.RasterCount)
img = dataset.GetRasterBand(1).ReadAsArray() 

f = plt.figure() 
plt.imshow(img) 
print(img.shape)
plt.show() 

这是我使用数据加载器并显示阈值图像的方式:

data_transforms = {
        'train': transforms.Compose([
            transforms.ToTensor(),
        ]),
        'val': transforms.Compose([
            transforms.ToTensor(),
        ]),
    }

image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x),
                                              data_transforms[x]) for x in ['train', 'val']}
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 

dataloders = {x: torch.utils.data.DataLoader(image_datasets[x],
                                                 batch_size=1,
                                                 shuffle=True,
                                                 num_workers=2) for x in ['train', 'val']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}

for image in dataloders["train"]:
  f = plt.figure() 
  print(image[0].shape)
  plt.imshow(image[0].squeeze()[0,:,:]) 
  plt.show() 
  break

任何有关显示图像的替代方式的帮助或我所犯的任何错误将不胜感激。

4

0 回答 0