使用python中的tkinter包制作一个分类工具

(一)背景描述

因为有分类任务需要对已有数据进行分类,但是通过手动分类容易分错,并且分类也不够灵活(需要来回切换目录)。因此想写一个分类工具,用来辅助进行图像分类任务,提升分类效率。从网上找到一些可用工具,但是觉得不太符合自己的需求,因此想着自己写一个使用起来相对友好的工具。

(二)窗口设计

因为分类任务较为简单,因此分类的窗口也比较简单。主要分为图像展示,图像信息展示,图像标签,图像切换(上下张),图像分类信息记录(log),因此有如下窗口设计。
最终设计如下:
在这里插入图片描述
编写生成的gui界面如下:
在这里插入图片描述

跳转分类页面如下:
在这里插入图片描述

(三)功能介绍

  1. 分类标签自动生成
    如下图所示,用户可以自己编写自己的标签文件,工具会自动生成标签选项
    在这里插入图片描述

  2. 图像标签修改
    图像如果分类完毕,如果觉得第一次分的不准确,可以返回重新分配。如下图所示,想要修改第四张图像标签从“固定翼_4”到"其他_5"
    在这里插入图片描述
    翻到第4张图像,更改标签为5,这里上一张和下一张都会触发保存功能

  3. 图像自动移动到类别子目录

  4. 保存后的图像会重新命名(这里用户可以根据自己需要修改代码,修改部分有注释)
    在这里插入图片描述
    图像存放位置如下:
    在这里插入图片描述

(四)操作过程描述

  1. 首界面选择要分类的图像文件夹和标签文件,会将里面全部的jpg图像读取出来(其他格式修改源码)
  2. 分类界面对展示的图像进行分类,上下张操作会自动保存分类结果
  3. 分类界面下面会自动记录分类结果,用户可以查看分类信息

(五)源码下载连接

没有找到绑定文件的地方,好像下面的方式也能下载。下载不需要任何积分(免费)。后面看看能不能直接在界面绑定文件,能够直接下载。
在这里插入图片描述

(六)更新

在这里插入图片描述
使用过程发现bug一处,这里更新一下。在save_img处添加
self.current_label = self.label_index.get()

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的 Python 绘图程序的代码,使用tkinter 库: ``` import tkinter as tk class PaintApp: def __init__(self, master): self.master = master self.master.title("Python 绘图程序") self.master.geometry("800x600") # 创建画布 self.canvas = tk.Canvas(self.master, bg="white", width=600, height=400) self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建工具栏 self.toolbar = tk.Frame(self.master) self.toolbar.pack(side=tk.RIGHT, fill=tk.Y) self.pen_btn = tk.Button(self.toolbar, text="画笔") self.pen_btn.pack(side=tk.TOP) self.line_btn = tk.Button(self.toolbar, text="直线") self.line_btn.pack(side=tk.TOP) self.rect_btn = tk.Button(self.toolbar, text="矩形") self.rect_btn.pack(side=tk.TOP) self.oval_btn = tk.Button(self.toolbar, text="椭圆") self.oval_btn.pack(side=tk.TOP) self.clear_btn = tk.Button(self.toolbar, text="清除") self.clear_btn.pack(side=tk.TOP) # 设置默认工具 self.current_tool = "pen" # 绑定事件 self.canvas.bind("<B1-Motion>", self.draw) self.pen_btn.config(command=lambda: self.set_tool("pen")) self.line_btn.config(command=lambda: self.set_tool("line")) self.rect_btn.config(command=lambda: self.set_tool("rect")) self.oval_btn.config(command=lambda: self.set_tool("oval")) self.clear_btn.config(command=self.clear) def draw(self, event): if self.current_tool == "pen": self.canvas.create_oval(event.x, event.y, event.x+5, event.y+5, fill="black") elif self.current_tool == "line": self.canvas.create_line(event.x, event.y, event.x+10, event.y+10, fill="black") elif self.current_tool == "rect": self.canvas.create_rectangle(event.x, event.y, event.x+20, event.y+20, fill="black") elif self.current_tool == "oval": self.canvas.create_oval(event.x, event.y, event.x+30, event.y+15, fill="black") def set_tool(self, tool): self.current_tool = tool def clear(self): self.canvas.delete("all") if __name__ == "__main__": root = tk.Tk() app = PaintApp(root) root.mainloop() ``` 这个程序创建了一个窗口,左侧是画布,右侧是工具栏,可以选择不同的工具进行绘画,支持画笔、直线、矩形、椭圆等基本绘图功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值