为了账号安全,请及时绑定邮箱和手机立即绑定

为什么调整图像大小会导致通道增加?

为什么调整图像大小会导致通道增加?

慕标5832272 2021-11-02 16:15:30
我有不同尺寸的灰度图像,因此我需要将它们转换为相同尺寸(例如 28*28)以进行实验。我尝试使用不同的方法来做到这一点,我能够做到,但我观察到调整图像大小会导致通道数量增加。我是 python 和图像处理的新手,所以请帮忙。from PIL import Imageimage = Image.open('6.tif')image = image.resize((28, 28), Image.ANTIALIAS)image.save('6.png', 'PNG', quality=100)然后以下代码显示不同的维度:import imageioimage_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)我不需要最后一个维度。这是怎么来的?即使使用“from resizeimage import resizeimage”,我也得到了类似的结果。
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

你的代码有很多问题...


如果您期待灰度图像,请确保这就是您得到的。所以,改变这个:

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

到:

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

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

  • PIL.Image.NEAREST

  • PIL.Image.BOX

  • PIL.Image.BILINEAR

  • PIL.Image.HAMMING

  • PIL.Image.BICUBIC

  • PIL.Image.LANCZOS

因此,您需要ANTI_ALIAS在这一行用上面列表中的内容替换:

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

当您另存为 PNG 时,它始终是无损的。品质因数与 JPEG 图像的工作方式不同,因此除非您对它如何影响 PNG 编码器有很好的了解,否则您应该忽略它。


如果您进行这些更改,特别是第一个更改,我认为您的问题将消失。请记住,PNG 编码器可能会采用 RGB 图像并将其保存为托盘化图像,或者可能采用灰度图像并将其编码为 RGB 或 RGB alpha。


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 352 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号