首页 > 解决方案 > 几张带有填充的图像上的相同 RandomCrop 如何获取参数?

问题描述

我有两个 PIL 图像,我想以相同的方式裁剪。它们具有相似的大小,但有时会torchvision.transforms.randomcrop()在图像边界之外裁剪,从而将生成的张量变成 nan。为了防止 randomcrop 有一个子功能torchvision.transforms.randomcrop(pad_if_needed=True)

我需要两个单独的图像相同的裁剪参数,所以我需要调用 .get_params 函数

        params = transforms.RandomCrop.get_params(image,output_size=(self.x,self.y))

但我仍然想要 pad_if_needed 功能。当我这样做时:

params = transforms.RandomCrop((self.x,self.y),pad_if_needed=True).get_params(image,output_size=(self.x,self.y))

如果需要,它不使用垫,并且仍然在图像区域之外裁剪。

当我这样做时:

RandCrop = transforms.RandomCrop((self.x,self.y),pad_if_needed=True)
params = RandCrop.get_params(image,output_size=(self.x,self.y))

它也不起作用

我怎样才能让它工作?

信息:我像这样进行裁剪:(TF 是 transforms.functional)

        image = TF.crop(image,params[0],params[1],params[2],params[3])
        mask = TF.crop(mask,params[0],params[1],params[2],params[3])

标签: pythonpython-imaging-librarytorchvision

解决方案


推荐阅读