Я просто хочу сравнить пиксель изображения: если этот пиксель розовый (значение R = 0,502, значение G = 0,0, значение B = 0,502), то измените его на черный цвет, иначе измените его на белый цвет. . После этого я хочу удалить каналы, чтобы получить только тензор формы (512,512).
Этот элемент getitem находится внутри моего класса набора данных.
Код:
def __getitem__(self, index):
img = Image.open(self.images[index]).convert("RGB") # this is one image
mask = Image.open(self.masks[index]).convert("RGB") # this is the corresponding mask
mask = self.transform_tensor(mask) # tensor is (3,512,512) shape
mask = torch.where((mask[0, :, :] == 0.502) & (mask[1, :, :] == 0.0) & (mask[2, :, :] == 0.502), torch.tensor([0.0, 0.0, 0.0]), torch.tensor([1.0, 1.0, 1.0])) # error
mask = self.transform_to_image(mask)
mask.show()
return self.transform_image(img), self.transform_mask(mask)
Я понимаю
RuntimeError: The size of tensor a (512) must match the size of tensor b (3) at non-singleton dimension 1
Error: Unexpected type(s): (bool, Tensor, Tensor)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -the-chann
Условное изменение значений пикселей в изображении RGB с последующим удалением каналов ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Условное изменение значений пикселей в изображении RGB с последующим удалением каналов
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Условное изменение значений пикселей в изображении RGB с последующим удалением каналов
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-