【发布时间】:2019-09-19 23:39:41
【问题描述】:
我正在执行图像分割任务。我正在将图像转换为标签,但图像的问题是由于 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()
为了解决这个问题,我尝试了this 方法,但问题是它将图像转换为非预先确定的像素值。它将上面的图像转换为以下像素值-
array([[ 0, 0, 0],
[ 0, 0, 254],
[ 0, 254, 0],
[254, 0, 0]]
这对我来说有点问题,因为我有不同的图像,并且每个图像的每种颜色都需要相同的像素值,但是使用上述方法,其他图像不一样,它可能会将红色图像转换为[255,0,0] 或类似的其他颜色。
怎么做?
【问题讨论】:
-
不要使用 JPEG 来存储这样的图像。使用索引格式,您的图像基本上可以仅使用每像素 2 位来保存。但即使作为标准的全彩 PNG 文件,它也能非常有效地保存,而且不会出现伪像。
-
问题是图像已经存储,我收到了这个数据集,我必须对其执行操作。问题是我也在观察 png 图像中的伪影效果,所以我有点被它们打动了
-
如果您在 PNG 图像中观察到伪影,这意味着有人拍摄了 JPEG 图像并对其进行了转换。无论是谁向您发送了图像,都应该被告知向您发送正确的数据,而不是带有易于避免的人工伪影的数据。当然你可以绕过它,但这样做是在浪费你的时间,因为其他人不知道他们在做什么,也没有人敢向他们解释如何做他们的工作。
-
@CrisLuengo 我完全同意。这是一种学术数据集,学者们通常只关心发表而不考虑长期目标。
标签: python image image-processing computer-vision