Can not create all images within the array using ImageDataGenerator.flow

I have 2 images (cat and dog) and I want to use ImageDataGenerator to increase the number of images as follows:

import keras
import cv2
import numpy as np
import os
from keras.preprocessing.image import ImageDataGenerator
from keras.utils import img_to_array
from os import listdir
from os.path import join, isfile

datagen = ImageDataGenerator(
    width_shift_range=0.15,
    height_shift_range=0.25
)

# Directory folder
Dir_img = '/content/drive/MyDrive/Test'
files = os.listdir(Dir_img)
print(files) # ['cat.jpg', 'dog.jpg']

After that, I use OpenCV to read images from Dir_img and keep array of each image into list as follows:

dataset = [] 
# type of dataset is list and consist of 2 arrays of images (cat and dog)

for img in files:
  img_ = cv2.imread(os.path.join(Dir_img,img), cv2.IMREAD_UNCHANGED) # default BGR
  Org_ = cv2.cvtColor(img_, cv2.COLOR_BGR2RGB) # Convert BGR -> RGB
  dataset.append(Org_)

Next, I want to reshape from (W,H,3) to (1,W,H,3)

Array = [] # len(Array) = 2 consist of Array[0] = cat, Array[1] = dog

for IMG in dataset:
  #print(IMG.shape) # cat: (666,1000,3), dog: (825,1100,3)
  ARR_ = img_to_array(IMG)
  ARR_ = ARR_.reshape((1,) + ARR_.shape)
  Array.append(ARR_)
  #print(ARR_.shape) # cat: (1, 666, 1000, 3), dog: (1, 825, 1100, 3) 

Finally, I use ImageDataGenerator.flow to create images.

i = 0
for k in datagen.flow(Array,
                      batch_size = 2,
                      seed = 2,
                      save_to_dir = '/content/drive/MyDrive/Test/Augmentation',
                      save_prefix = 'Aug',
                      save_format = 'png'
                      ):
    i += 1
    if i >= 4:
        break 

I received 4 more images of cats but I didn’t receive images of dogs.
Why is the dog image not added? Please guide me.

Hi @Jaturong, As ImageDataGenerator was deprecated in the latest stable version, I have tried to perform data augmentation using user defined functions and as able to save the augmented images in the respective folders. please refer to this gist for sample code example. Thank You.