Ich habe es geschafft, während ich dachte, dass ich Bilder leicht klassifizieren kann.
Ich habe ein Programm zum Verschieben von Bildern in einen bestimmten Ordner erstellt, indem ich mit der rechten Maustaste und mit der linken Maustaste geklickt habe.
Das Bild wurde aus der Standardbilddatenbank SIDBA des Kanagawa Institute of Technology heruntergeladen.
Wenn Sie das Programm ausführen, werden 5 Bilder angezeigt.
Ich klickte auf das Bild der Erde. Das Fenster wird aktualisiert.
Das angeklickte Bild der Erde wurde verschoben. Da es diesmal ein Linksklick war, wird es in den L-Ordner ausgegeben.
imageMover.py
import cv2
import glob
import shutil
import os
import numpy as np
#Die Bildgröße ist bei 200px vereinheitlicht
size = (200, 200)
name = [] #Dateiname
data = [] #Dateidaten
coordinates = [] #Koordinaten beim Klicken
#Erstellen Sie einen Zielordner. L und R entsprechen Linksklick bzw. Rechtsklick.
os.makedirs('./L', exist_ok=True)
os.makedirs('./R', exist_ok=True)
#Datei lesen
for file in glob.glob('*.bmp'):
img = cv2.imread(file)
img = cv2.resize(img, size)
name.append(file)
data.append(img)
#Funktion wird ausgeführt, wenn die Maus angeklickt wird
def click_event(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
coordinates[0:3] = [x, y, 'L']
if event == cv2.EVENT_RBUTTONDOWN:
coordinates[0:3] = [x, y, 'R']
#Anzahl der Bilder
hasWindow = len(data)
#Ausführen, wenn die Anzahl der verbleibenden Bilder 1 oder mehr beträgt
while hasWindow > 0:
img = cv2.hconcat(data[:5])
while(1):
cv2.imshow('img', img)
cv2.setMouseCallback("img", click_event) #Wenn geklickt
#Holen Sie sich die Koordinaten, wenn Sie darauf klicken, und verschieben Sie das entsprechende Bild
if len(coordinates) != 0:
n = coordinates[0]//200
shutil.move(name[n], coordinates[2]+'/'+name[n])
print(F'Ordner{coordinates[2]}Zu{name[n]}Gerührt')
data.pop(n)
name.pop(n)
coordinates = []
hasWindow -= 1 #Aktualisieren Sie die verbleibende Anzahl von Bildern
break
#Koordinaten initialisieren
coordinates = []
#Gibt es eine Tasteneingabe?
key = cv2.waitKey(100) & 0xff
#Fenster schließen, wenn Tastatur oder x gedrückt wird
if key != 255 or cv2.getWindowProperty('img', cv2.WND_PROP_AUTOSIZE) == -1:
cv2.destroyAllWindows()
exit()
Es wird auch auf [Github] hochgeladen (https://github.com/isso5235/imageMover/blob/master/imageMover.py).
Ist manuell nicht schneller?
Es scheint, dass Sie mehr entwickeln können, indem Sie die Anzahl der angezeigten Bilder erhöhen.
Danke, dass du bis zum Ende zugesehen hast. Wir freuen uns auf Ihre Vorschläge und Kommentare.
Recommended Posts