I am trying to include the filename path in a custom image transform (so that I can compare an image with its binary map during loading) but the PIL image object does not include the filename of the image. I am wondering if there is any way to pass the corresponding file path to the transform with the PIL image.
You can use dataloader. Set the dataloader in such a way that it can return image, binary mask and image filename. I am assuming there are two folders, one for image and other for masks and both have same filenames.
class DataLoaderEx(Dataset): def __init__(self,img_path,mask_path): self.img_path = img_path self.mask_path = mask_path self.files = glob.glob(img_path + '*.bmp') def __len__(self): return len(self.files) def __getitem__(self, index): img_path = self.files[index] mask_path = os.path.join(self.mask_path,os.path.basename(img_path)) # Here you can read the image using PIL with img and mask path return image,mask.filename
Hope this one helps.