首页 > 解决方案 > 'ToPILImage' 对象没有属性 'show'

问题描述

我正在做一个图像处理任务,我想连接两个图片站点。对于concatting,我先将图像转换为张量,然后将张量转换为PIL图像显示,但报错。有人可以帮帮我吗?这是我的代码:

import skimage.io as io
import torch
from torchvision import  models, transforms
from PIL import Image
import matplotlib.pyplot as plt
from torchvision.transforms import ToPILImage
import numpy as np
from skimage import data_dir,io,color

coll1 = io.ImageCollection('F:\\code1/*.jpg')
coll2 = io.ImageCollection('F:\\code2/*.jpg')
a = torch.tensor(coll1)
print(a)
print(a.shape)
b = torch.tensor(coll2)
print(b)
print(b.shape)
c=torch.cat((a,b),1)
print(c.shape)
print(c)
img= transforms.ToPILImage()
img.show()

这是错误代码:

Traceback(最近一次调用最后):文件“F:/filelist.py”,第 39 行,在 img.show() AttributeError: 'ToPILImage' 对象没有属性 'show'

标签: pythonpython-imaging-librarypytorch

解决方案


ToPILImage方法接受张量或 ndarray 作为输入source

您需要将单个图像张量转换为该ToPILImage方法。从您的帖子中,我怀疑您传递的是一批图像张量而不是一个,因此出现了错误。

假设如果你想从张量可视化图像c

img = transforms.ToPILImage()(c)
img.show()

推荐阅读