代码拉取完成,页面将自动刷新
同步操作将从 mynameisi/书法体识别APP 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import tkinter as tk # Python的标准图形用户界面库,用于创建图形用户界面。
from tkinter import filedialog
from PIL import Image, ImageTk # Python图像处理库,提供图像处理功能。
import numpy as np
from util import preprocess_image, load, get
char_styles = get('char_styles') # 字体样式
new_size = get('new_size') # 新尺寸
class ImageClassifierApp:
def __init__(self, model_path):
# 使用util.load加载最佳模型
# TODO
self.model = load("best_model", f'{get("model_root")}/best_model')
# 创建主窗口
self.root = tk.Tk()
self.root.title('Image Classifier')
self.root.geometry("300x200")
# 创建一个按钮用于选择图像
self.button = tk.Button(self.root, text='选择图像', command=self.select_image)
self.button.pack()
# 创建一个标签用于显示图像
self.image_label = tk.Label(self.root)
self.image_label.pack()
# 创建一个标签用于显示预测的类别
self.prediction_label = tk.Label(self.root)
self.prediction_label.pack()
# 启动GUI事件循环
self.root.mainloop()
def select_image(self):
# 打开文件对话框以选择图像
image_path = filedialog.askopenfilename()
# 使用util的preprocess_image函数预处理图像
img = preprocess_image(image_path, new_size) # 对图像进行预处理
img = np.expand_dims(img, axis=0) # 将图像增加一个维度
# 使用加载的最佳模型执行推理
predicted_class = self.model.predict(img)
# 用PIL读取图像,并设置读取图像后的窗口的大小
#pil_image = Image.open(image_path).resize((200, 200), Image.BILINEAR)
pil_image = Image.open(image_path)
# 将PIL图像转换为PhotoImage并更新标签
image_tk = ImageTk.PhotoImage(pil_image)
self.image_label.config(image=image_tk)
self.image_label.image = image_tk
# 更新预测标签
self.prediction_label.config(text=f'预测类别: {char_styles[predicted_class[0]]}')
# 启动应用程序
app = ImageClassifierApp(f'{get("model_root")}/best_model')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。