【问题标题】:How to increase the size of image using python?如何使用python增加图像的大小?
【发布时间】:2020-10-21 08:16:49
【问题描述】:

我有大小为48x48 的图像。我想将其大小增加到150x150 以使用迁移学习(CNN)进行训练。有什么可能的方法来做到这一点?我只看到了 resize 方法来减小图像大小而不是增加图像大小

【问题讨论】:

  • 您可以像使用 PIL 或 cv2.resize 函数一样进行填充或调整大小(缩放图像)。就用同样的。但问题是在将图像大小(如果它们是两个小则输入)增加到 150*150 后,您可能会得到不太好的结果,但您可以尝试。

标签: python image-resizing conv-neural-network


【解决方案1】:

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

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

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

方法参数需要来自 image.ResizeMethod 枚举的项目,或等效的字符串。选项有:

  • 双线性:双线性插值。如果 antialias 为真,则变为 下采样时具有半径 1 的 hat/tent 过滤器功能。
  • lanczos3: 半径为 3 的 Lanczos 内核。高质量的实用滤镜,但可能会有一些振铃,尤其是在合成图像上
  • lanczos5: 半径为 5 的 Lanczos 内核。非常高质量的过滤器,但可能有更强的振铃。
  • 双三次:键的三次插值。相当于 Catmull-Rom 内核。质量相当好,比 Lanczos3Kernel 更快, 尤其是在上采样时。
  • 高斯:高斯核,半径为 3,sigma = 1.5 / 3.0。
  • 最近的:最近邻插值。与最近邻插值一起使用时,抗锯齿无效。
  • area: 使用区域插值进行抗锯齿重采样。与区域插值一起使用时,抗锯齿没有效果;它总是 抗锯齿。
  • mitchellcubic: Mitchell-Netravali Cubic 非插值滤波器。对于合成图像(尤其是那些缺乏适当预过滤的图像), 比 Keys 三次内核振铃更少,但不那么尖锐。

here details

【讨论】:

    【解决方案2】:

    这可能有效。

    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)
    

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 2020-01-01
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多