Есть ли способ сохранить изображения без пробелов?

#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.