【Tensorflow_DL_Note15】TensorFlow視覺化學習2-用Matplotlib視覺化

馬衛飛發表於2018-05-10

#====================================================================================================
#NumPy庫簡介】
#       [1]NumPy是非常有名的Python科學計算工具包,其中包含大量有用的思想,比如【陣列物件】,用來表示向量、矩陣、
#          影象等以及【線性代數函式】。
#       [2]【資料物件】可以幫助你實現陣列中重要的操作,比如【矩陣乘積】、【轉置】、【解方程系統】、【向量乘積】和
#          【歸一化】操作等,這些都為影象變形,對變化建模、影象分類、影象聚類等提供了基礎。
#Matplotlib庫簡介】
#       [1]我們處理【數學運算】、【繪製圖表】、或者在【影象上繪製點】、【直線】和【曲線】時,Matplotlib是個很好
#          的庫,具有比PIL更強大的繪圖功能。
#       [2]Matplotlib中的PyLab介面包含很多方便使用者建立影象的函式。
#====================================================================================================
#====================================================================================================
#Tensorflow中的影象處理函式】
#       [1]Tensorflow中,我們可以將一張【RGB彩色模式的影象】看成一個【三位矩陣:張量】,矩陣中的每一個數表示影象
#          上不同位置,不同顏色的亮度。
#       [2]然而,影象在儲存時,並不是直接記錄這些矩陣中的數字,而是記錄經過壓縮編碼之後的結果。所以,要將一張影象還
#          原成一個三維矩陣,需要解碼的過程。Tensorflow提供了對Jpegpng格式影象編碼/解碼的函式。
#====================================================================================================
import cv2
import tensorflow as tf
import matplotlib.pyplot as plt


#1】例項化一個Tensorflow中檔案讀寫類tf.gfile.FastGFile的類物件,該類的建構函式第二個引數為檔案路徑,第三個引數
#為讀寫檔案的模式,rb表示讀取二進位制檔案
image_jpg = tf.gfile.FastGFile('F:/cifar-10-batches-py/building.jpg','rb').read()

with tf.Session() as sess:
    image_jpg = tf.image.decode_jpeg(image_jpg)                        #[1]影象解碼
    print(sess.run(image_jpg))                                        #[2]列印解碼後的影象(即為一個三維矩陣[w,h,3]    image_jpg = tf.image.convert_image_dtype(image_jpg,dtype=tf.uint8) #[3]改變影象資料型別
    resiz_img = tf.image.resize_images(image_jpg,[300,200],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
    print(resiz_img.get_shape())

    plt.figure(1)                                                      #[4]建立一個影象顯示視窗
    plt.imshow(image_jpg.eval())
    plt.figure(2)
    plt.imshow(resiz_img.eval())
    plt.show()





相關文章