#python #matplotlib #image-processing
Вопрос:
У меня есть две проблемы, связанные с пробелом в изображениях. Я пытаюсь обучить модель семантической сегментации, но у меня возникли две проблемы с тем, как в настоящее время хранятся мои данные.
Во-первых, если я использую plt.savefig (), изображения сохраняются с тонкой белой рамкой, как показано ниже. Это делается с помощью bbox_inches=’плотно’:
Вторая проблема заключается в том, как я храню маски для своих обучающих данных. Это показывает следы колес:
Однако для того, чтобы использовать этот слой в качестве моей маски, он должен иметь отдельные метки — то, что здесь белое и показывает «фон», должно быть просто помечено 0, а красное должно быть помечено «1». Я не совсем знаю, как это сделать, и поиск в Google никуда меня не ведет — главная проблема в том, что фон этого изображения (сгенерированного с помощью plt.fill()) белый, что, я думаю, вызывает проблемы.
Комментарии:
1. Вы задаете здесь целую кучу вопросов. Разбейте свою проблему на части и попытайтесь решить каждую из них. Задавайте вопрос, когда у вас возникнут с этим проблемы.
Ответ №1:
Я думаю, вам нужно работать от пикселя к пикселю и проверять, белый ли цвет, попробуйте использовать
из PIL импортируйте изображение r,b,g,p = изображение.getpixel( (0,0) ) печать(«Красный: {0}, зеленый: {1}, Синий: {2}».формат(r,g,b))
Здесь вы узнаете, каков цвет RBG этого пикселя, и после этого вы сможете изменить цвет пикселя с помощью
Image.putdata(данные, масштаб, смещение)
Скопируйте значения пикселей из объекта последовательности в изображение, начиная с верхнего левого угла (0, 0). Значения масштаба и смещения используются для настройки значений последовательности:
пиксель = значение * масштаб смещение
Если шкала опущена, по умолчанию она равна 1,0. Если смещение опущено, по умолчанию оно равно 0,0.