numpy.resize
を使用してください。下記の例を参照してください。すべての画像は同じ形状(この場合は768 x 1024 x 3)です。この例では、列番号で行番号を切り替えました。 im_all
は4d配列です。 Iはxおよびy軸のそれぞれに200個のピクセルを追加上記の例では
from scipy.misc import imread, imresize
import numpy as np
import matplotlib.pyplot as plt
f = r"C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg"
im0 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\koala.jpg"
im1 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\tulips.jpg"
im2 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\desert.jpg"
im3 = imread(f)
im_all = np.array([im0, im1, im2, im3])
for i in range(im_all.shape[0]):
temp = im_all[0, :, :, :].copy()
im_all = np.delete(im_all, 0, 0)
temp = imresize(temp, (temp.shape[0]+200, temp.shape[1]+200, 3))
temp = np.expand_dims(temp, axis=0)
try:
im_all_b = np.vstack([im_all_b, temp])
except NameError:
im_all_b = temp
plt.figure()
plt.imshow(im_all_b[1])
plt.show()
:メモリ使用量の最適化:ここ
from scipy.misc import imread
import numpy as np
import matplotlib.pyplot as plt
f = r"C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg"
im0 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\koala.jpg"
im1 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\tulips.jpg"
im2 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\desert.jpg"
im3 = imread(f)
im_all = np.array([im0, im1, im2, im3])
im_all_b = np.resize(im_all, [im_all.shape[0], im_all.shape[2], im_all.shape[1], im_all.shape[3]])
plt.figure()
plt.imshow(im_all_b[1])
plt.figure()
plt.imshow(im_all[1])
plt.show()
は(http://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.misc.imresize.htmlデフォルトbilinear
で、参照)補間との一例です。
ありがとうございます。しかし、あなたの例の操作はイメージの形を変えるだけです。それで、np.resize関数はイメージをより大きなイメージにリサイズすることができるようですが、TensorFlowの関数tf.image.resize_imagesのような最近隣の補間メソッドのような一般的な補間方法を使ってリサイズしません。元のイメージに繰り返しコピーされます。申し訳ありませんが、これは私が望むものではありません。とにかく、同じことに感謝します。 – Kongsea
私の編集した答えを見てください。 –
はい、今回は動作します。しかし、あなたのプログラムでは、** forループ**を使用しました。これは、画像データに何十万もの画像が含まれているため、膨大な時間を要しました。また、0から1の範囲の浮動小数点形式に画像データを再スケーリングすると、フォーマットがサポートされていないことを示すエラーが発生します。とにかく、親切なお手伝いをしてくれてありがとう。 – Kongsea