scipy.misc.imresize
不同於普通的reshape, imresize不是單純的改變圖像矩陣的維度,而是能將圖片重采樣為指定像素,這樣給深度學習中訓練圖像數據帶來方便。
import numpy as np import matplotlib.pyplot as plt import h5py import scipy from PIL import Image from scipy import ndimage %matplotlib inline num_px = 64 my_image = "my_image4.jpg" # 修改你圖像的名字 fname = "images/" + my_image # 圖片位置 image = np.array(ndimage.imread(fname, flatten=False)) # 讀入圖片為矩陣 plt.imshow(image)
# my_image = scipy.misc.imresize(image, size=(num_px, num_px)).reshape((1, num_px * num_px * 3)).T # 轉置圖片為 (num_px*num_px*3, 1)向量 # 重新設置圖像像素 my_image = scipy.misc.imresize(image, size=(num_px, num_px)) plt.imshow(my_image)
2020.6.3日修改============================================================
這個函數在新版本的scipy中不能用了,改成
import imageio from skimage.transform import resize ## START CODE HERE ## (PUT YOUR IMAGE NAME) my_image = "my_image4.jpg" # 修改你圖像的名字 ## END CODE HERE ## # We preprocess the image to fit your algorithm. fname = "images/" + my_image # 圖片位置 image = np.array(imageio.imread(fname)) # 讀入圖片為矩陣, 這里用原版本的會出錯,scipy的那個函數被刪了 print(image.shape) # 轉置圖片為 (num_px*num_px*3, 1)向量 my_image = resize(image, output_shape=(num_px, num_px)).reshape((1, num_px * num_px * 3)).T print(my_image)