Image Augmentation in Python - Part 1

In [2]:
# How to plot MNIST dataset in Python

def Snippet_353(): 
    print()
    print(format('How to plot MNIST dataset in Python','*^82'))

    import time
    start_time = time.time()
    from keras.datasets import mnist
    import matplotlib.pyplot as plt
    
    # load data
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # create a grid of 3x3 images
    for i in range(0, 9):
        plt.subplot(331 + i)
        plt.imshow(X_train[i], cmap=plt.get_cmap('gray'))
    
    # show the plot
    plt.show()
    
    print()
    print("Execution Time %s seconds: " % (time.time() - start_time))    
Snippet_353()
***********************How to plot MNIST dataset in Python************************
Execution Time 1.4080281257629395 seconds: 
In [3]:
# How to standarise image features in Python using MNIST dataset 

def Snippet_354(): 

    print()
    print(format('How to standarise image features in Python using MNIST dataset','*^82'))
    
    import time
    start_time = time.time()
    
    from keras.datasets import mnist
    from keras.preprocessing.image import ImageDataGenerator    
    import matplotlib.pyplot as plt
    
    # load data
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # reshape to be [samples][width][height][channels]
    X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
    X_test  = X_test.reshape(X_test.shape[0],28, 28, 1)
    
    # convert from int to float
    X_train = X_train.astype('float32')
    X_test = X_test.astype('float32')
    
    # define data preparation
    datagen = ImageDataGenerator(featurewise_center=True, 
                                 featurewise_std_normalization=True)
    # fit parameters from data
    datagen.fit(X_train)
    
    # configure batch size and retrieve one batch of images
    for X_batch, y_batch in datagen.flow(X_train, y_train, batch_size=9):
        # create a grid of 3x3 images
        for i in range(0, 9):
            plt.subplot(330 + 1 + i)
            plt.imshow(X_batch[i].reshape(28, 28), cmap=plt.get_cmap('gray'))
        # show the plot
        plt.show()
        break
    
    print()
    print("Execution Time %s seconds: " % (time.time() - start_time))    
Snippet_354()
**********How to standarise image features in Python using MNIST dataset**********
Execution Time 1.6403238773345947 seconds: 
In [4]:
# How to do whitening transformation in image features using Python 

def Snippet_355(): 

    print()
    print(format('How to do whitening transformation in image features using Python','*^82'))
    
    import time
    start_time = time.time()
    
    from keras.datasets import mnist
    from keras.preprocessing.image import ImageDataGenerator    
    import matplotlib.pyplot as plt
    
    # load data
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # reshape to be [samples][width][height][channels]
    X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
    X_test  = X_test.reshape(X_test.shape[0],28, 28, 1)
    
    # convert from int to float
    X_train = X_train.astype('float32')
    X_test = X_test.astype('float32')
    
    # define data preparation
    datagen = ImageDataGenerator(zca_whitening=True)
    
    # fit parameters from data
    datagen.fit(X_train)
    
    # configure batch size and retrieve one batch of images
    for X_batch, y_batch in datagen.flow(X_train, y_train, batch_size=9):
        # create a grid of 3x3 images
        for i in range(0, 9):
            plt.subplot(330 + 1 + i)
            plt.imshow(X_batch[i].reshape(28, 28), cmap=plt.get_cmap('gray'))
        # show the plot
        plt.show()
        break
    
    print()
    print("Execution Time %s seconds: " % (time.time() - start_time))    
Snippet_355()
********How to do whitening transformation in image features using Python*********
/Users/nilimesh/opt/anaconda3/lib/python3.7/site-packages/keras_preprocessing/image/image_data_generator.py:336: UserWarning: This ImageDataGenerator specifies `zca_whitening`, which overrides setting of `featurewise_center`.
  warnings.warn('This ImageDataGenerator specifies '
Execution Time 1.9175920486450195 seconds: 
In [5]:
# How to do random rotation in image features using Python 

def Snippet_356(): 

    print()
    print(format('How to do random rotation in image features using Python ','*^82'))
    
    import time
    start_time = time.time()
    
    from keras.datasets import mnist
    from keras.preprocessing.image import ImageDataGenerator    
    import matplotlib.pyplot as plt
    
    # load data
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # reshape to be [samples][width][height][channels]
    X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
    X_test  = X_test.reshape(X_test.shape[0],28, 28, 1)
    
    # convert from int to float
    X_train = X_train.astype('float32')
    X_test = X_test.astype('float32')
    
    # define data preparation
    datagen = ImageDataGenerator(rotation_range=90)
    
    # fit parameters from data
    datagen.fit(X_train)
    
    # configure batch size and retrieve one batch of images
    for X_batch, y_batch in datagen.flow(X_train, y_train, batch_size=9):
        # create a grid of 3x3 images
        for i in range(0, 9):
            plt.subplot(330 + 1 + i)
            plt.imshow(X_batch[i].reshape(28, 28), cmap=plt.get_cmap('gray'))
        # show the plot
        plt.show()
        break
    
    print()
    print("Execution Time %s seconds: " % (time.time() - start_time))    
Snippet_356()
************How to do random rotation in image features using Python *************
Execution Time 1.2117140293121338 seconds: