Как это можно решить без сохранения изображения?
Извините за простой вопрос, но я новичок в torch, torchvision и matplotlib.
Вот мой код, который сначала сохраняет изображение:
Код: Выделить всё
import torch
import matplotlib.pyplot as plt
from torchvision.io import read_image
mask = read_image("A_mask.png")
mask_np = mask.numpy()
print(mask_np.shape) #(1, 438, 567)
mask_np[mask_np == 4] = 50
output_image = torch.tensor(mask_np)
from torchvision import transforms
im = transforms.ToPILImage()(output_image).convert("RGB")
im.save("A-Mask-Colored-By-Hand.png")
Код: Выделить всё
from torchvision import transforms
m = read_image("A-Mask-Colored-By-Hand.png")
#print(type(m)) #
Таким образом, закомментирование этого блока... будет работать, но неоптимально при сохранении и повторной загрузке.
Код: Выделить всё
from PIL import Image
#tensor_image = im.permute(1,2,0) # #
tensor_image = im
pil_image = Image.fromarray((tensor_image.numpy() * 255).astype("uint8"))
# here it stops, throwing an AttributeError: 'Image' object has no attribute 'numpy'
Код: Выделить всё
m = pil_image
print(m.shape) #(3, 438, 567)
m = m.numpy()
print(m.shape) #(3, 438, 567)
cgrey = 50 # grey #50 > into red #255
mask = (m[0]==cgrey) & (m[1]==cgrey) & (m[2]==cgrey)
m[0][mask] = 255
m[1][mask] = 0
m[2][mask] = 0
output_image = torch.tensor(m)
from torchvision import transforms
im = transforms.ToPILImage()(output_image).convert("RGB")
print(im) # tensor
im.save("A-Mask-Colored-RGB.png")
Подробнее здесь: https://stackoverflow.com/questions/793 ... pecific-co