Я выполняю задачи сегментации изображения.Я конвертирую изображения в метки, но проблема с изображениями связана с артефактом сжатия jpg, в изображениях присутствуют промежуточные цвета. Так что для изображения, которое должно иметь 4 цвета (для моего случая), они имеют много цветов.Например, на изображении ниже представлено 338 цветов:
, которые я проверил, используя следующий код:
image = Image.open("Image_Path")
image = np.array(image)
target = torch.from_numpy(image)
h,w = target.shape[0],target.shape[1]
masks = torch.empty(h, w, dtype=torch.long)
colors = torch.unique(target.view(-1,target.size(2)),dim=0).numpy()
Чтобы решить эту проблему, япробовал этот подход, но проблема в том, что он конвертирует изображение в предварительно не определенные значения пикселей. Он преобразует вышеуказанное изображение в следующие значения пикселей -
array([[ 0, 0, 0],
[ 0, 0, 254],
[ 0, 254, 0],
[254, 0, 0]]
, что является своего родаДля меня это проблематично, потому что у меня разные изображения, и все они должны иметь одинаковые значения пикселей для каждого цвета для каждого изображения, но, используя описанный выше метод, это не то же самое для других изображений, оно может преобразовать изображение красного цвета в [255,0,0]
или аналогичное другое.цвета тоже.Как это сделать?