簡體   English   中英

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

[英]How to increase the size of image using python?

我有大小為48x48的圖像。 我想將其大小增加到150x150以使用遷移學習(CNN)進行訓練。 有什么可能的方法來做到這一點? 我想以這樣的方式增加圖像大小,使分辨率保持不變而不會丟失任何數據。

您可以毫無問題地使用tensorflow.image.resize方法

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

如果您閱讀 tensorflow 的文檔,它指出您可以使用不同的方法進行下采樣和上采樣

method 參數需要來自 image.ResizeMethod 枚舉的項目,或等效的字符串。 選項包括:

  • 雙線性:雙線性插值。 如果 antialias 為真,則在下采樣時成為半徑為 1 的帽子/帳篷過濾器函數。
  • lanczos3:半徑為 3 的 Lanczos 內核。高質量的實用濾波器,但可能有一些振鈴,尤其是在合成圖像上
  • lanczos5:半徑為 5 的 Lanczos 內核。非常高質量的濾波器,但可能有更強的振鈴。
  • 雙三次:鍵的三次插值。 相當於 Catmull-Rom 內核。 質量相當好,比 Lanczos3Kernel 更快,尤其是在上采樣時。
  • gaussian:半徑為 3 的高斯核,sigma = 1.5 / 3.0。
  • 最近:最近鄰插值。 與最近鄰插值一起使用時,抗鋸齒無效。
  • area:使用區域插值進行抗鋸齒重采樣。 與區域插值一起使用時,抗鋸齒沒有效果; 它總是抗鋸齒。
  • mitchellcubic: Mitchell-Netravali Cubic 非插值濾波器。 對於合成圖像(尤其是那些缺乏適當預過濾的圖像),振鈴比 Keys 三次核少,但不那么銳利。

這里詳情

這可能會奏效。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM