#-------AI3.py import cv2 import numpy as np import matplotlib.pyplot as plt import math import random import os from tensorflow.keras.preprocessing import image from tensorflow.keras.optimizers import RMSprop from tensorflow import keras import tensorflow as tf import shutil from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Conv2D from tensorflow.keras.layers import MaxPooling2D from tensorflow.keras.layers import Dropout from tensorflow.keras.utils import to_categorical from sklearn.model_selection import train_test_split # 指定亂數種子 seed = 7 np.random.seed(seed) # 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_THUO.h5' ntest=20; pathT=path+'/TEST/' ntest=20; pathT=path+'/O2/' LAB=['T','H','U','O'] model = keras.models.load_model(mod1) print('load ',mod1,' ... done') # read images test=load_images_from_folder(pathT,ntest) 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)