如何使用python增加图像的大小?

2024-04-24 05:38:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大小为48x48的图像。我想将它的大小增加到150x150,以便使用转移学习(CNN)进行培训。可能的方法是什么?我只见过调整大小的方法,以减少图像大小,但不增加


Tags: 方法图像cnn
2条回答

您可以毫无问题地使用tensorflow.image.resize方法

tf.image.resize(X, [150, 150])

如果您阅读tensorflow的文档,它说明您可以使用不同的方法进行向下采样和向上采样

方法参数需要image.ResizeMethod枚举中的项或等效字符串。这些选择包括:

  • 双线性:双线性插值。如果antialias为true,则变为 下采样时半径为1的帽子/帐篷过滤器功能
  • lanczos3:半径为3的Lanczos内核。高质量实用滤波器,但可能有一些振铃,尤其是在合成图像上
  • lanczos5:半径为5的Lanczos内核。非常高质量的过滤器,但可能有更强的振铃
  • 双三次:三次键插值。相当于Catmull Rom内核。质量相当好,速度比Lanczos3内核快, 尤其是在上采样时
  • 高斯:半径为3的高斯核,σ=1.5/3.0
  • 最近邻:最近邻插值。与最近邻插值一起使用时,“抗锯齿”无效
  • 区域:使用区域插值进行抗锯齿重采样。当与面积插值一起使用时,antialias不起作用;总是 消除别名
  • mitchellcubic:Mitchell-Netravali立方非插值滤波器。对于合成图像(尤其是缺少适当预滤波的图像), 与立方体内核相比,响声更小,但更不尖锐

here details

这可能有用

from PIL import Image
import numpy as np

# random image data
image_data = np.random.randint(low=0, high=256, size=(48,48,3)).astype(np.uint8)

image_small = Image.fromarray(image_data)

# there are many settings you can play here, depending on how you want the image resized
image_large = image_small.resize((120,120))

np.array(image_large)

相关问题 更多 >