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


def modh5(model,LAB,img):
    test=[]
    test.append(img)
    testa=np.array(test)
    X_test=testa
    X_test=X_test.reshape(X_test.shape[0],128,128,1).astype("float32")
    pred = np.argmax(model.predict(X_test),axis=1)      
    p1=pred[0]; L1=LAB[p1]
    #print('pred=',pred,p1,L1)
    return L1



if __name__ == '__main__':
    import time
    from time import sleep
    tini=time.time()
    ncat=4; isx=128; isy=128
    mod1='model_NUM4C20.h5'
    LAB=['1','2','3','4']
    model = keras.models.load_model(mod1)
    t00=time.time(); t02=t00
    tmodel=round(t00-tini,3)
    print('trackh5r.py as a main, tmodel=',tmodel)
    for j in range(100):
        img=cv2.imread('NUM2_001.png')
        img2=cv2.resize(img,(128,128))
        cv2.imshow('img',img)
        imgg=cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
        cv2.imshow('imgg',imgg)
        L1=modh5(model,LAB,imgg)
        t01=time.time(); t=round(t01-t00,3); dt=round(t01-t02,3); 
        t02=t01
        print(j,t,dt,L1,type(L1))
        if cv2.waitKey(1) & 0xFF == ord('q'): break
        #cv2.waitKey(0)

