4章 p.199-205

元本ではこの章は TensorFlow 1.x で実行するようだが、自習では TensorFlow2 を使ってみることにする。

GAN (Generative Adversarial Network) を使った画像生成

Data Augmentation

元本と同様に、Data Augmentation を行うことにする。Augmentation によって生成した 画像は Google Drive 上に保存する。

元本のノイズの乗せ方はURLで示したWebのコードと同じだが、下の自習のコードでは addGaussianNoise()addSaltAndPepperNoise()の返す配列の要素を整数 ('uint8') 化している。

LUT

LUT は、色補正を行った後、footage (映像) をColor Grading するのに役立つ。 LUT (Lookup Table) は、事前に定義された数値の配列を適用することで、特定の計算の近道を提供する。

#### OpenCV2 におけるLUT関数の使用例
import cv2
import numpy as np

gamma=1.8
lookupTable = np.zeros(256,1, dtype='uint8')
for i in range(256):
    lookupTable[i][0] = 255 * pow(float(i)/255, 1.0/gamma)

img = cv2.imread('filename.png', cv2.IMREAD_COLOR)
img2 = cv2.LUT(img, lookupTable)

つまり、256の大きさの配列を作り、画像の各ピクセル値の変換後の値をlookupTable[ピクセル値] に入れておいて、cv2.LUT(画像,表) で変化後の画像を得ることになる。

ファイルに保存する

生成した画像をいくつか表示する