在學習TensorFlow框架時,提到用MNIST手寫數字數據庫進行練習,為了更直觀看下里面的數據到底長啥樣,用OpenCV(cv2)中的imshow函數來進行顯示。
默認已經安裝: numpy、tensorflow、cv2
1--首先是根據Tensorflow官網的方法獲得數據庫:
1 from tensorflow.examples.tutorials.mnist import input_data 2 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
現在mnist對象已經擁有MNIST數據庫的訓練集和測試集。
2--進行單張顯示比較容易,如下代碼:
1 import cv2 2 # display one database image 3 im = mnist.test.images[0].reshape(28, 28) 4 cv2.imshow("demo", im) 5 cv2.waitKey(0) 6 cv2.destroyAllWindows()
顯示結果為:

3--單張顯示太單調(圖像大小28x28),可以嘗試多張網格排列顯示。
- 起先考慮從數據庫中取出100張,然后根據取出順序確定在哪行哪列,最后合成大圖,但根據順序直接確定該圖像位置有點困難
- 換個思路:先確定網格位置,再從數據庫中選取一張插入,似乎簡單了許多
代碼如下:
import cv2 import numpy as np #per row 10 patches, per col 10 patches BigIm = np.zeros((280, 280)) index = 0 for i in range(10): for j in range(10): temp = mnist.train.images[index].reshape(28, 28) BigIm[28*i:28*(i+1), 28*j:28*(j+1)] = temp index += 1 cv2.imshow("demo", BigIm) cv2.waitKey(0)
結果如下:

看了數據庫的樣子,接下來可以愉快地進行深度學習了~
