画像の前処理各種
DNNに入れる前の前処理をいくつかMNISTに適用したのでメモ。
ライブラリのインポートと日本語フォントの設定
import keras
from keras.datasets import mnist
import matplotlib.pyplot as plt
import numpy as np
import cv2
%matplotlib inline
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Hiragino Maru Gothic Pro', 'Yu Gothic', 'Meirio', 'Takao', 'IPAexGothic', 'IPAPGothic', 'VL PGothic', 'Noto Sans CJK JP']
mnist ロード
#Kerasの関数でデータの読み込み。データをシャッフルして学習データと訓練データに分割
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 2次元データを数値に変換
#x_train = x_train.reshape(60000, 784)
#x_test = x_test.reshape(10000, 784)
# 型変換
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
# 255で割ったものを新たに変数とする
#x_train /= 255
#x_test /= 255
各種処理を行った際の画像を表示
img = x_train[0]
plt.title('元画像')
plt.imshow(img, cmap='gray',clim=[0,255])
plt.show()
img_07 = img*0.7
plt.title('0.7')
plt.imshow(img_07, cmap='gray',clim=[0,255])
plt.show()
img_std = (img_07 - np.mean(img_07))/np.std(img_07)*16+64
plt.title('ブライトネス・コントラスト調整背景白')
plt.imshow(img_std, cmap='gray',clim=[0,255])
plt.show()
img_norm = np.zeros(img_std.shape)
img_norm = cv2.normalize(img_std, img_norm, 0, 255, cv2.NORM_MINMAX)
plt.title('背景白正規化')
plt.imshow(img_norm, cmap='gray',clim=[0,255])
plt.show()
plt.title('0.7正規化')
img_norm = cv2.normalize(img_07, img_norm, 0, 255, cv2.NORM_MINMAX)
plt.imshow(img_norm, cmap='gray',clim=[0,255])