[PYTHON] J'ai essayé de déplacer l'image vers le dossier spécifié en faisant un clic droit et un clic gauche

introduction

Je l'ai fait en pensant que je devrais pouvoir classer facilement les images.

Ce que j'ai fait

J'ai créé un programme pour déplacer des images vers un dossier spécifié par un clic droit et un clic gauche.

media.gif

L'image a été téléchargée à partir de la base de données d'images standard SIDBA de l'Institut de technologie de Kanagawa. explorer.jpg

Lorsque vous exécutez le programme, 5 images seront affichées. window.jpg

J'ai cliqué sur l'image de la terre. La fenêtre sera mise à jour.

updated.jpg

L'image cliquée de la terre a été déplacée. Puisqu'il s'agissait d'un clic gauche cette fois, il est sorti dans le dossier L.

updatedWindow.jpg

code

imageMover.py


import cv2
import glob
import shutil
import os
import numpy as np

#La taille de l'image est unifiée à 200 pixels
size = (200, 200)  

name = []   #nom de fichier
data = []   #Données de fichier
coordinates = []    #Coordonnées lorsque vous cliquez dessus

#Créez un dossier de destination. L et R correspondent respectivement au clic gauche et au clic droit.
os.makedirs('./L', exist_ok=True)
os.makedirs('./R', exist_ok=True)

#Lire le fichier
for file in glob.glob('*.bmp'):
    img = cv2.imread(file)
    img = cv2.resize(img, size) 
    name.append(file) 
    data.append(img)

#Fonction exécutée lorsque la souris est cliquée
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']

#Nombre d'images
hasWindow = len(data)

#Exécuter lorsque le nombre d'images restantes est égal ou supérieur à 1
while hasWindow > 0:
    img = cv2.hconcat(data[:5])

    while(1):
        cv2.imshow('img', img)
        cv2.setMouseCallback("img", click_event) #Lorsque cliqué
        
        #Obtenez les coordonnées lorsque vous cliquez dessus et déplacez l'image correspondante
        if len(coordinates) != 0:
            n = coordinates[0]//200
            shutil.move(name[n], coordinates[2]+'/'+name[n])
            print(F'dossier{coordinates[2]}À{name[n]}Déplacé')
            data.pop(n)
            name.pop(n)
            coordinates = []
            hasWindow -= 1 #Mettre à jour le nombre d'images restant
            break
        
        #Initialiser les coordonnées
        coordinates = []    

        #Y a-t-il une entrée clé
        key = cv2.waitKey(100) & 0xff

        #Fermer la fenêtre lorsque vous appuyez sur le clavier ou x
        if key != 255 or cv2.getWindowProperty('img', cv2.WND_PROP_AUTOSIZE) == -1:
            cv2.destroyAllWindows()
            exit()

Il est également téléchargé sur Github.

Conclusion

Le manuel n'est-il pas plus rapide?

en conclusion

Il semble que vous puissiez concevoir plus en augmentant le nombre d'images affichées.

Merci d'avoir regardé jusqu'à la fin. Nous attendons vos suggestions et commentaires avec impatience.

Recommended Posts

J'ai essayé de déplacer l'image vers le dossier spécifié en faisant un clic droit et un clic gauche
J'ai essayé d'obtenir une image en grattant
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
J'ai essayé de passer le test G et la qualification E en m'entraînant à partir de 50
J'ai essayé de détecter l'iris à partir de l'image de la caméra
Redimensionner l'image à la taille spécifiée et noircir les marges
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé d'afficher l'heure et la météo d'aujourd'hui w
J'ai essayé d'énumérer les différences entre java et python
J'ai essayé de vérifier la classification yin et yang des membres hololive par apprentissage automatique
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
J'ai essayé de créer l'image de démarrage SD de LicheePi Nano
J'ai essayé de visualiser l'ensemble de données de préférence de boisson par décomposition tenseur.
J'ai essayé de traiter l'image en "style croquis" avec OpenCV
J'ai essayé de résumer les commandes utilisées par les ingénieurs débutants aujourd'hui
J'ai fait apprendre à RNN la vague de péché et j'ai essayé de prédire
J'ai essayé de traiter l'image dans un "style de dessin au crayon" avec OpenCV
J'ai essayé de couper une image fixe de la vidéo
J'ai essayé de résoudre le problème de planification des équipes par diverses méthodes
[RHEL7 / CentOS7] J'ai mis dans le swatch de l'outil de surveillance du journal et j'ai essayé de notifier par e-mail.
J'ai essayé de résumer la commande umask
J'ai essayé de reconnaître le mot de réveil
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
J'ai essayé de jouer avec l'image avec Pillow
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé de résumer jusqu'à ce que je quitte la banque et devienne ingénieur
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé de résumer moi-même le flux général jusqu'à la création de services.
J'ai essayé d'exprimer de la tristesse et de la joie face au problème du mariage stable.
765 J'ai essayé d'identifier les trois familles professionnelles par CNN (avec Chainer 2.0.0)
J'ai essayé d'apprendre l'angle du péché et du cos avec le chainer
J'ai essayé de trouver l'itinéraire optimal du pays des rêves par recuit (quantique)
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
J'ai essayé de résumer les commandes Linux utilisées par les ingénieurs débutants aujourd'hui - Partie 1-
J'ai essayé de classer Oba Hanana et Otani Emiri par apprentissage profond
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
J'ai implémenté le modèle VGG16 avec Keras et essayé d'identifier CIFAR10
J'ai essayé d'analyser la carte du Nouvel An par moi-même en utilisant python
J'ai essayé de contrôler la bande passante et le délai du réseau avec la commande tc
J'ai essayé de notifier la mise à jour de "Hameln" en utilisant "Beautiful Soup" et "IFTTT"
J'ai essayé de "lisser" l'image avec Python + OpenCV
[Python] J'ai essayé de juger l'image du membre du groupe d'idols en utilisant Keras
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai implémenté DCGAN et essayé de générer des pommes
J'ai essayé d'optimiser le séchage du linge
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai fait un modèle de classification d'images et essayé de le déplacer sur mobile
J'ai essayé de prédire la présence ou l'absence de neige par apprentissage automatique.