南昌做网站哪个公司好,北京有限公司有哪些,云数据库安装wordpress,北京搜索关键词优化图片分类标注工具
运行代码#xff1a;将代码保存到 Python 文件中并运行。选择文件夹#xff1a;运行时会弹出对话框#xff0c;选择要分类的图片文件夹。标注分类#xff1a;程序会逐张显示图片#xff0c;你可以在下方输入框中输入类别标签#xff0c;并点击“Next”…图片分类标注工具
运行代码将代码保存到 Python 文件中并运行。选择文件夹运行时会弹出对话框选择要分类的图片文件夹。标注分类程序会逐张显示图片你可以在下方输入框中输入类别标签并点击“Next”按钮记录标签。查看上张可以使用“Previous”按钮查看上一张图片。保存结果关闭程序时会自动将所有标签保存到 labels.txt 文件中。
import os
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTkclass ImageLabeler:def __init__(self, root, image_folder):self.root rootself.root.title(Image Classifier)self.image_folder image_folderself.image_files [f for f in os.listdir(image_folder) if f.endswith((.png, .jpg, .jpeg))]self.current_image_index 0self.labels []self.photo None # 用于保持对图像的引用# 创建界面组件self.image_label tk.Label(root)self.image_label.pack()self.label_entry tk.Entry(root)self.label_entry.pack()self.next_button tk.Button(root, textNext, commandself.next_image)self.next_button.pack()self.prev_button tk.Button(root, textPrevious, commandself.prev_image)self.prev_button.pack()# 展示第一张图片self.show_image()def show_image(self):if self.current_image_index len(self.image_files):image_path os.path.join(self.image_folder, self.image_files[self.current_image_index])print(fLoading image: {image_path}) # Debug infotry:image Image.open(image_path)image.thumbnail((400, 400)) # 缩放图片self.photo ImageTk.PhotoImage(image) # 保存对图像的引用self.image_label.config(imageself.photo)self.image_label.image self.photo # 绑定图像到 Labelexcept Exception as e:print(fError loading image {image_path}: {e})self.next_image() # 尝试加载下一张图片else:self.root.quit() # 如果没有更多图片则退出def next_image(self):label self.label_entry.get()if label:self.labels.append((self.image_files[self.current_image_index], label))self.label_entry.delete(0, tk.END)self.current_image_index 1self.show_image()else:print(Please enter a label.)def prev_image(self):if self.current_image_index 0:self.current_image_index - 1self.label_entry.delete(0, tk.END)self.show_image()def save_labels(self):with open(labels.txt, w) as f:for filename, label in self.labels:f.write(f{filename}: {label}\n)if __name__ __main__:root tk.Tk()image_folder filedialog.askdirectory(titleSelect Image Folder)if image_folder:app ImageLabeler(root, image_folder)root.protocol(WM_DELETE_WINDOW, app.save_labels) # 确保在关闭时保存标签root.mainloop()