为什么要调整图像率先在渠道增加?

问题描述 投票:1回答:1

我有不同尺寸的灰度图像,所以我需要将它们转换为相同的尺寸(比如,28 * 28)我的实验。我试着用不同的方法来做到这一点,我能做到这一点,但我观察到的图像调整导致于信道数量增加。我是新来的Python和图像处理,请帮助。

from PIL import Image

image = Image.open('6.tif')
image = image.resize((28, 28), Image.ANTIALIAS)
image.save('6.png', 'PNG', quality=100)

然后下面的代码显示不同的维度:

import imageio

image_data = imageio.imread("6.tif").astype(float)
print(image_data.shape)

image_data = imageio.imread("6.png").astype(float)
print(image_data.shape)

而结果是:

(65, 74)
(28, 28, 4)

我不需要在最后一个维度。这是怎么来的?我得到了类似的结果,即使“从resizeimage进口resizeimage”。

python image resize grayscale channels
1个回答
1
投票

有许多与你的代码的问题...


如果你期待一个灰度图像,确保是你会得到什么。因此,改变这种:

image = Image.open('6.tif')

至:

image = Image.open('6.tif').convert('L')

当您调整图像大小,你需要使用的正确的重采样方法之一:

  • PIL.Image.NEAREST
  • pi l.image.box
  • PIL.Image.BILINEAR
  • Pilimejhamming
  • PIL.Image.BICUBIC
  • PIL.Image.LANCZOS

所以,你需要从在这条线上面的列表中的东西来代替ANTI_ALIAS

image = image.resize((28, 28), Image.ANTIALIAS)

当你保存为PNG,它始终是无损耗的。品质因数不起作用一样的JPEG图像,所以你应该忽略它,除非你有它如何影响PNG编码器有很好的理解。


如果你做这些改变,特别是第一,我认为你的问题就会迎刃而解。请注意,尽管该PNG编码器可以采用RGB图像,并将其保存为托盘化图像,或者它可以采取灰度图像和编码它作为RGB,RGB或阿尔法。

© www.soinside.com 2019 - 2024. All rights reserved.