我想在不更改像素值范围的情况下调整PIL图像的大小。
我已经尝试过Image.resize()
,但是它将像素值范围从[0,255]更改为[79,179]
我正在使用Python和PyTorch,在PyTorch中,transforms.resize()
将实现Image.resize()
这是我使用的测试代码
a = torch.randint(0,255,(500,500), dtype=torch.uint8)
print(a.size())
print(torch.max(a))
a = torch.unsqueeze(a, dim =0)
print(a.size())
compose = transforms.Compose([transforms.ToPILImage(),transforms.Resize((128,128))])
a_trans = compose(a)
print(a_trans.size)
print(a_trans.getextrema())
代码输出为:
torch.Size([500, 500])
tensor(254, dtype=torch.uint8)
torch.Size([1, 500, 500])
(128, 128)
(79, 179)
所以有人可以解释为什么输出范围是[79,179]? 如果我想在不更改值范围的情况下进行大小调整,该怎么办? 预先谢谢
答案 0 :(得分:0)
尝试使用pil中实现的最近邻居算法调整大小。不会改变像素