【问题标题】:Pytorch Data Loader concatenate an image to input imagesPytorch Data Loader 将图像连接到输入图像
【发布时间】:2021-05-23 12:29:58
【问题描述】:

在 PyTorch 数据加载器中,我如何将图像(比如 x.jpg)以带内方式连接到每个输入图像。即,实际上我将有 4 波段输入(3 波段输入 jpg 和 1 波段 x.jpg。如何实现它。

请在下面找到我当前数据加载器的示例,以加载图像。为此,我想将 x.jpg 添加到“图像”(即输入图像,而不是遮罩)

from PIL import Image

class lakeDataSet(Dataset):
   def __init__(self, root, transform):
   super().__init__()
   self.root = root
   self.img_dir = os.path.join(root,'image-c3/c3-crop')   #9UAV
   self.mask_dir = os.path.join(root,'label-c3/c3-crop')
   # self.mask_dir = os.path.join(root,'test')
   self.files = [fname for fname in os.listdir(self.img_dir) if fname.endswith('.jpg')]
self.transform = transform

   def __len__(self):
     return len(self.files)

   def __getitem__(self,I):
     fname = self.files[i]
     img_path = os.path.join(self.img_dir, fname)
     mask_path = os.path.join(self.mask_dir, fname)

     img = self.transform(Image.open(img_path))
     mask = self.transform(Image.open(mask_path))
     return img, mask

【问题讨论】:

标签: python computer-vision pytorch


【解决方案1】:

我想self.transform 已经有ToTensor。否则你也应该指定它。

然后你可以连接第一个维度。喜欢

x_jpg = self.transform(Image.open('x.jpg'))
img = torch.cat((img, x_jpg), 0)

x.jpg 必须只有 1 个通道,如果是 RGB,那么显然它会变成 6 个通道而不是 4 个。

【讨论】:

    猜你喜欢
    • 2021-07-25
    • 2013-08-20
    • 2016-11-28
    • 2021-06-21
    • 1970-01-01
    • 2019-05-15
    • 2021-01-30
    • 2020-06-21
    • 1970-01-01
    相关资源
    最近更新 更多