基于wxPython的深度学习图像处理界面开发(二)

本文介绍了Python中Tkinter、PyQt和wxPython三种图形用户界面开发库的特点,并推荐了wxPython用于深度学习图像处理界面开发,包括基本功能如图片选择、显示和结果展示。作者提供了wxPython的一个示例代码,展示了如何用它构建一个水果分类系统界面。
摘要由CSDN通过智能技术生成

        Python 中的图形用户界面(Graphical User Interfa GUI)开发库有很多,较为突出有:Tkinter 、PyQt 和 wxPython。 推荐大家使用wxPython 开发图形用户界面。

        1、Tkinter 是 Python 官方提供的图形用户界面开发库,用于封装Tk GUI工具包,跨平台。但是 Tkinter 工具包所含的控件较少,帮助文档不健全,不便于我们开发复杂的图形用户界面。
        2、PyQt 是非Python官方提供的图形用户界面开发库,用于封装Qt 工具包,跨平台若想使用PyQt 工具包,则需要额外安装软件包。
        3、wxPython 是非Python官方提供的图形用户界面开发库,也跨平台。他提供了丰富的控件,可用于开发复杂的图形用户界面。它的工具包帮助文档很完善,案例也很丰富。

  下面界面的开发,需要有一点的基础,建议先看看我写的另外一篇文章:基于wxPython的深度学习图像处理界面开发(一)-CSDN博客

一. 需求

       包装深度学习的界面应该具有以下几个几个基本功能:

       1.通过按钮选择图片或者模型

       2.显示图片

       3.显示运行结果

二.部分代码展示(完整代码看下载链接)

        以一个简单的深度学习分类代码作为演示,大家可以基于这个改,该有的功能都有

#!/bin/python

import wx
from PIL import Image
import numpy as np
from model import HappyModel
from tensorflow.keras.utils import img_to_array
import warnings
warnings.filterwarnings('ignore')
import os
import cv2


EMOTIONS = ['Apple_Braeburn', 'Banana', 'Blueberry', 'Cherry', 'Chestnut', 'Cocos', 'Corn', 'Eggplant',
                 'Fig', 'Ginger_Root', 'Granadilla', 'Lemon', 'Onion_Red', 'Orange', 'Pear']


def reload_net():
    model_path = "logs/HappyModel_model_logep042-accuracy0.966-val_accuracy0.999.h5"
    IMG_W = 96
    IMG_H = 96
    model_cnn = HappyModel((IMG_H, IMG_W, 3))
    model_cnn.load_weights(model_path)
    return model_cnn

def evaluate_one_image(pil_image):
    model_cnn = reload_net()
    # 将 PIL 图像转换为 NumPy 数组
    np_array = np.array(pil_image)
    # 创建 OpenCV 图像对象
    cv_image = cv2.cvtColor(np_array, cv2.COLOR_RGB2BGR)
    image_re = cv_image.astype("float") / 255.0
    image_re = img_to_array(image_re)
    image_re = np.expand_dims(image_re, axis=0)

    # 用模型预测各分类的概率
    preds = model_cnn.predict(image_re)[0]
    # emotion_probability = np.max(preds)  # 最大的概率
    label = EMOTIONS[preds.argmax()]  # 选取最大概率的表情类

    return label

class HelloFrame(wx.Frame):

    def __init__(self,*args,**kw):
        super(HelloFrame,self).__init__(*args,**kw)
        pnl = wx.Panel(self)
        self.pnl = pnl
        st = wx.StaticText(pnl, pos=(200, 0))
        font = st.GetFont()
        font.PointSize += 10
        font = font.Bold()
        st.SetFont(font)
        # 选择图像文件按钮
        btn = wx.Button(pnl, -1, "打开图片")
        btn.Bind(wx.EVT_BUTTON, self.OnSelect)
        self.makeMenuBar()
        self.CreateStatusBar()


    def makeMenuBar(self):
        menuBar = wx.MenuBar()
        self.SetMenuBar(menuBar)


    def OnSelect(self, event):
		pass

    # 生成图片控件
    def initimage(self, name):
		pass
        return sb


if __name__ == '__main__':
    app = wx.App()
    frm = HelloFrame(None, title='基于神经网络CNN水果分类系统', size=(600,600))
    frm.Show()
    app.MainLoop()

三. 运行结果显示

代码的下载路径(新窗口打开链接)基于wxPython的深度学习图像处理界面开发

有问题可以私信或者留言,有问必答

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值