卷积神经网络实现猫狗识别并用GUI实现的代码
时间: 2023-12-11 16:24:49 浏览: 108
以下是使用Keras框架实现猫狗识别并用GUI实现的Python代码示例:
```python
import tensorflow as tf
from tensorflow.keras.models import load_model
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk
# 加载训练好的模型
model = load_model('/path/to/model.h5')
# 创建GUI窗口
root = Tk()
root.title('猫狗识别')
root.geometry('300x300')
# 创建GUI组件
label = Label(root, text='上传一张猫或狗的图片进行识别')
label.pack(pady=10)
canvas = Canvas(root, width=150, height=150)
canvas.pack(pady=10)
def open_image():
# 选择图片文件
file_path = filedialog.askopenfilename(initialdir='/',
title='选择文件',
filetypes=[('Image Files', '*.jpg *.png *.jpeg')])
# 打开图片
img = Image.open(file_path)
# 调整图片大小
img = img.resize((150, 150))
# 显示图片
photo = ImageTk.PhotoImage(img)
canvas.create_image(0, 0, anchor=NW, image=photo)
canvas.image = photo
# 预测图片
img_tensor = tf.keras.preprocessing.image.img_to_array(img)
img_tensor = img_tensor.reshape((1,) + img_tensor.shape)
img_tensor /= 255.
prediction = model.predict(img_tensor)
if prediction < 0.5:
result_label.config(text='这是一只猫')
else:
result_label.config(text='这是一只狗')
button = Button(root, text='选择图片', command=open_image)
button.pack(pady=10)
result_label = Label(root, text='')
result_label.pack(pady=10)
root.mainloop()
```
以上代码演示了使用Keras框架实现猫狗识别,并在GUI窗口中提供了选择图片文件、显示图片和识别结果的功能。用户可以通过点击“选择图片”按钮来选择一张猫或狗的图片进行识别,程序会将图片显示在GUI窗口中,并显示识别结果。需要注意的是,需要将训练好的模型文件(.h5格式)放在指定路径下,并在代码中进行加载。
阅读全文