首页 > 解决方案 > 有没有办法在没有空白的情况下保存图像?

问题描述

关于图像中的空白,我有两个问题。我正在尝试训练语义分割模型,但我的数据当前存储方式有两个问题。

首先,如果我使用 plt.savefig() ,图像将被存储为如下所示的白色细边框。这是使用 bbox_inches='tight':

细白边框

第二个问题是我如何存储训练数据的掩码。这显示了轮迹: 轮轨面罩

然而,为了将它用作我的遮罩层,它需要有单独的标签——这里的白色和显示“背景”的东西应该只标记为 0,红色应该标记为“1”。我不太清楚如何做到这一点,谷歌搜索并没有把我带到任何地方——主要问题是这张图片的背景(使用 plt.fill() 生成)是白色的,我认为这会导致问题。

标签: pythonmatplotlibimage-processing

解决方案


我认为您需要逐个像素地工作并检查颜色是否为白色尝试使用

from PIL import Image r,b,g,p = picture.getpixel( (0,0) ) print("Red: {0}, Green: {1}, Blue: {2}".format(r,g, b))

在这里,您将了解该像素的 RBG 颜色是什么,之后,您可以使用更改像素颜色

Image.putdata(数据,比例,偏移)

将像素值从序列对象复制到图像中,从左上角 (0, 0) 开始。比例和偏移值用于调整序列值:

像素 = 值 * 比例 + 偏移

如果省略比例,则默认为 1.0。如果省略偏移量,则默认为 0.0。


推荐阅读