[PYTHON] Ich habe versucht, das Bild durch Klicken mit der rechten und linken Maustaste in den angegebenen Ordner zu verschieben

Einführung

Ich habe es geschafft, während ich dachte, dass ich Bilder leicht klassifizieren kann.

Was ich gemacht habe

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.

media.gif

Das Bild wurde aus der Standardbilddatenbank SIDBA des Kanagawa Institute of Technology heruntergeladen. explorer.jpg

Wenn Sie das Programm ausführen, werden 5 Bilder angezeigt. window.jpg

Ich klickte auf das Bild der Erde. Das Fenster wird aktualisiert.

updated.jpg

Das angeklickte Bild der Erde wurde verschoben. Da es diesmal ein Linksklick war, wird es in den L-Ordner ausgegeben.

updatedWindow.jpg

Code

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).

Fazit

Ist manuell nicht schneller?

abschließend

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

Ich habe versucht, das Bild durch Klicken mit der rechten und linken Maustaste in den angegebenen Ordner zu verschieben
Ich habe versucht, durch Schaben ein Bild zu bekommen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich habe versucht, das Bild zu verarbeiten und zu transformieren und die Daten für maschinelles Lernen zu erweitern
Ich habe versucht, den G-Test und die E-Qualifikation durch Training ab 50 zu bestehen
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ändern Sie die Größe des Bildes auf die angegebene Größe und schwärzen Sie die Ränder
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich habe versucht, die Uhrzeit und das heutige Wetter anzuzeigen
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich habe versucht, die Yin- und Yang-Klassifikation hololiver Mitglieder durch maschinelles Lernen zu überprüfen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe versucht, den Getränkepräferenzdatensatz durch Tensorzerlegung zu visualisieren.
Ich habe versucht, das Bild mit OpenCV im "Skizzenstil" zu verarbeiten
Ich habe versucht, die Befehle zusammenzufassen, die Anfängeringenieure heute verwenden
Ich ließ RNN Sin Wave lernen und versuchte vorherzusagen
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
Ich habe versucht, ein Standbild aus dem Video auszuschneiden
Ich habe versucht, das Schichtplanungsproblem mit verschiedenen Methoden zu lösen
[RHEL7 / CentOS7] Ich habe das Farbfeld des Protokollüberwachungstools eingefügt und versucht, per E-Mail zu benachrichtigen.
Ich habe versucht, den Befehl umask zusammenzufassen
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, mit Pillow mit dem Bild zu spielen
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Ich versuchte zusammenzufassen, bis ich die Bank verließ und Ingenieur wurde
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe versucht, den allgemeinen Ablauf bis zur Erstellung von Diensten selbst zusammenzufassen.
Ich versuchte, Trauer und Freude über das Problem der stabilen Ehe auszudrücken.
765 Ich habe versucht, die drei Berufsfamilien durch CNN zu identifizieren (mit Chainer 2.0.0).
Ich habe versucht, den Winkel von Sin und Cos mit Chainer zu lernen
Ich habe versucht, die optimale Route des Traumlandes durch (Quanten-) Tempern zu finden
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Linux-Befehle zusammenzufassen, die heute von Anfängeringenieuren verwendet werden - Teil 1-
Ich habe versucht, Oba Hanana und Otani Emiri durch tiefes Lernen zu klassifizieren
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Ich habe das VGG16-Modell mit Keras implementiert und versucht, CIFAR10 zu identifizieren
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Ich habe versucht, die Netzwerkbandbreite und -verzögerung mit dem Befehl tc zu steuern
Ich habe versucht, das Update von "Hameln" mit "Beautiful Soup" und "IFTTT" zu benachrichtigen.
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
[Python] Ich habe versucht, das Mitgliederbild der Idolgruppe mithilfe von Keras zu beurteilen
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe DCGAN implementiert und versucht, Äpfel zu generieren
Ich habe versucht, beim Trocknen der Wäsche zu optimieren
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe ein Bildklassifizierungsmodell erstellt und versucht, es auf dem Handy zu verschieben
Ich habe versucht, das Vorhandensein oder Nichtvorhandensein von Schnee durch maschinelles Lernen vorherzusagen.