tensorflow圖片預處理和測試效果(resize,crop,pad等)
阿新 • • 發佈:2019-02-05
#%% 讀圖片程式碼 import matplotlib.pyplot as plt # plt 用於顯示圖片 import matplotlib.image as mpimg # mpimg 用於讀取圖片 import tensorflow as tf test_image = 'G:/ZhangSG/01.jpg' image_raw_data_jpg = tf.gfile.FastGFile(test_image, 'rb').read() with tf.Session() as sess: # output the original JPG image lena = mpimg.imread(test_image) plt.figure(0) plt.imshow(lena) # 顯示圖片 plt.show() # Decode a JPG image img_data_jpg = tf.image.decode_jpeg(image_raw_data_jpg) img_data_jpg = tf.image.convert_image_dtype(img_data_jpg, dtype=tf.float32) # resize it to 299 by 299 using default method. resized_image = tf.image.resize_images(img_data_jpg, [299, 299]) plt.figure(1) plt.imshow(resized_image.eval()) # 顯示圖片 plt.show() # crop it to 299 by 299 using default method. cropped_image = tf.image.resize_image_with_crop_or_pad(img_data_jpg, 299, 299) plt.figure(2) plt.imshow(cropped_image.eval()) # 顯示圖片 plt.show() # plt.axis('off') # 不顯示座標軸
以上這段程式碼可以直接用,如果是第一次用,需要注意這麼幾個地方:
1. matplotlib這個包需要從python裡面安裝一下,類似pip install 這種,不再贅述,可以從網上找教程,不難。
2. test_image是圖片路徑+圖片名,這裡直接用絕對路徑表示了,如果用程式碼,這裡必須改為自己的路徑。
3. 結果會顯示三張圖片,分別是原始圖片(python自帶的讀圖片程式碼),tf的resize程式碼效果,以及crop和pad程式碼效果。需要補充的是resize一定要用tf的這個resize_images,如果用image.resize()會帶來奇怪的輸出,不贅述。crop和pad是以圖片自己為中心進行裁剪或填充。
後續:
http://blog.csdn.net/UESTC_C2_403/article/details/72699260
這篇部落格可以參考,四種不同方式的處理。