import cv2
import numpy as np
import os 
from tensorflow import keras

# read image
image_size=128
isz=image_size
def load_images_from_folder(folder,nfile):
    images = []
    for filename in os.listdir(folder):
        img = cv2.imread(os.path.join(folder,filename), cv2.IMREAD_GRAYSCALE)
        if img is not None:
            img = cv2.resize(img,(isz,isz))/255
            images.append(img)
    return np.array(images[:nfile])


path='PNG'; ncat=4; nfile=20;
mod1='model_NUM4C20.h5'
ntest=16; pathT=path+'/T/'
LAB=['1','2','3','4']

model = keras.models.load_model(mod1)
#print('load ',mod1,' ... done')

# read images

test=load_images_from_folder(pathT,ntest)
print(type(test),test.shape)
#print('load is done pathT=',pathT)
X_test=test
X_test=X_test.reshape(X_test.shape[0],isz,isz,1).astype("float32")
#print('X_test:type,len,shape=',type(X_test),len(X_test),X_test.shape)
pred = np.argmax(model.predict(X_test),axis=1)      
#print()
print('pred=',pred)
'''
for i in range(ntest):
    img = X_test[i,:,:,0]
    print(i,'pred[i]=',pred[i],' LAB=',LAB[pred[i]])
    cv2.imshow('img',img)
    cv2.waitKey(0)
'''

