Image Classification Tool: Batch Image Sorting with Tkinter
import tkinter as tk from PIL import ImageTk, Image import os import shutil
class ImageClassificationTool: def init(self, root): self.root = root self.root.title('Image Classification Tool')
self.image_frame = tk.Frame(self.root)
self.image_frame.pack()
self.image_labels = []
self.button_frame = tk.Frame(self.root)
self.button_frame.pack()
self.image_paths = []
self.current_image_index = 0
self.display_count = 2
self.load_images_from_folder()
self.display_images()
self.create_buttons()
def load_images_from_folder(self):
folder_path = 'path_to_folder' # 更改为你的文件夹路径
self.image_paths = sorted([os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith('.jpg')])
def display_images(self):
for label in self.image_labels:
label.destroy()
self.image_labels = []
for i in range(self.current_image_index, self.current_image_index + self.display_count):
if i < len(self.image_paths):
image_path = self.image_paths[i]
img = Image.open(image_path)
img = img.resize((200, 200), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(img)
label = tk.Label(self.image_frame, image=photo)
label.image = photo
label.grid(row=0, column=i-self.current_image_index)
self.image_labels.append(label)
def create_buttons(self):
folder_paths = ['path_to_folder1', 'path_to_folder2', 'path_to_folder3', 'path_to_folder4'] # 更改为你需要的文件夹路径
self.button_index = 0
button = tk.Button(self.button_frame, text=f'Folder {self.button_index+1}', command=self.process_images)
button.pack(side='left')
def process_images(self):
folder_path = folder_paths[self.button_index]
os.makedirs(folder_path, exist_ok=True)
for i in range(self.current_image_index, self.current_image_index + self.display_count):
if i < len(self.image_paths):
image_path = self.image_paths[i]
shutil.copy(image_path, folder_path)
print(f'Image {image_path} saved to Folder {self.button_index+1}')
self.button_index += 1
if self.button_index < len(folder_paths):
button = tk.Button(self.button_frame, text=f'Folder {self.button_index+1}', command=self.process_images)
button.pack(side='left')
self.current_image_index += self.display_count
if self.current_image_index >= len(self.image_paths):
print('All images processed.')
self.display_images()
root = tk.Tk() app = ImageClassificationTool(root) root.mainloop()
原文地址: https://www.cveoy.top/t/topic/qE66 著作权归作者所有。请勿转载和采集!