[Ev3dev] Créez un programme qui capture LCD (écran) en utilisant python

introduction

Cet article suppose que vous avez installé ev3dev sur votre EV3 et que vous disposez d'une connexion SSH. Si vous n'avez pas créé l'environnement, reportez-vous à cet article.

mindstorm - contrôlons EV3 avec Linux! Installez le système d'exploitation ev3dev et la connexion SSH

Quoi faire

mindstorm - Créez un programme qui capture l'écran (LCD) du bloc intelligent de l'EV3 et l'enregistre sous forme d'image. Utilisez l'API ev3dev de Python ev3dev-lang-python.

Veuillez vous référer ici pour la construction de l'environnement de ev3dev-lang-python.

Contrôlons les moteurs et capteurs EV3 avec Python

programme

screenshot.py


#!/usr/bin/env python3


import sys
from subprocess import call
#Bibliothèque de gestion des données d'image
from PIL import Image

#Nom de l'image à enregistrer, par défaut"screenshot.png "
out_name = sys.argv[1] if len(sys.argv) > 1 else "screenshot.png "

#Capturez le tampon d'image et convertissez-le en image PNG
call(["fbgrab", out_name]);

#Chargez l'image de capture d'écran
image = Image.open(out_name)

#Convertir l'image au format RVB
image = image.convert("RGB")

#Formater l'image
image = image.resize(tuple(i * 2 for i in image.size), Image.NEAREST)


pixel_data = image.load()

#Conversion de couleur d'image
for y in range(image.size[1]):
    for x in range(image.size[0]):
        if pixel_data[x, y] == (255, 255, 255):
            pixel_data[x, y] = (173, 181, 120)

# Save the image again
image.save(out_name);

call(["fbgrab", out_name])L'image de capture d'écran obtenue par est une image en noir et blanc, vous devez donc convertir les pixels blancs en vert clair pour représenter la vraie couleur de l'écran. La partie suivante du programme réalise ce processus.

for y in range(image.size[1]):
    for x in range(image.size[0]):
        if pixel_data[x, y] == (255, 255, 255):
            pixel_data[x, y] = (173, 181, 120)

Courir

Vous pouvez spécifier le fichier image de destination d'enregistrement dans le premier argument.

robot@ev3dev:$ python screenshot.py test.png

J'ai une image comme celle-ci test.png

Recommended Posts

[Ev3dev] Créez un programme qui capture LCD (écran) en utilisant python
Un programme qui utilise Python pour lire des fichiers indésirables
[Python] Un programme qui arrondit le score
[Python] Un programme qui compte le nombre de vallées
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 1 ~
[Python] Un programme qui trouve les valeurs minimales et maximales sans utiliser de méthodes
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 2 ~
[Python] Un programme qui compare les positions des kangourous.
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 3 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 4 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 5 ~
Il y a un modèle que le programme ne s'est pas arrêté lors de l'utilisation du thread Python
[Python] Un programme qui trouve les types d'oiseaux les plus courants
Créer une interface graphique python à l'aide de tkinter
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
[Python] Un programme qui crée des escaliers avec #
Créer un graphique à l'aide du module Sympy
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
[Python] Créez un LineBot qui s'exécute régulièrement
[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
[Python] Un programme qui calcule le nombre de segments de chocolat qui remplissent les conditions
[Python] Un programme qui calcule le nombre de chaussettes jumelées
Créer un enregistrement avec des pièces jointes dans KINTONE à l'aide du module de requêtes Python
Créer un fichier GIF en utilisant Pillow en Python
Un programme qui supprime les instructions en double en Python
Créer une carte Web en utilisant Python et GDAL
Python: créer une classe qui prend en charge l'affectation décompressée
Créez un fichier MIDI en Python en utilisant pretty_midi
Créez une interface graphique sur le terminal à l'aide de curses
Un programme shell qui affiche une séquence de Fibonacci
[Python] Un programme qui calcule la différence entre les valeurs totales diagonales
[Python] Un programme qui calcule le nombre de mises à jour des enregistrements les plus élevés et les plus faibles
Une histoire qui était pratique lorsque j'ai essayé d'utiliser le module d'adresse IP python
Créer un module Python
Découpez une partie de la chaîne à l'aide d'une tranche Python
Une note sur l'implémentation de la bibliothèque qui explore les hyperparamètres à l'aide de l'optimisation bayésienne en Python
[Python] Un programme qui trouve le nombre d'étapes le plus court dans un jeu qui traverse les nuages
[Python] Générer ValueObject avec un constructeur complet à l'aide de classes de données
Programme qui résume les données csv de l’historique des transactions de l’action SBI Securities [Python3]
En Python, créez un décorateur qui accepte dynamiquement les arguments Créer un décorateur
Programme Python qui recherche le même nom de fichier
[Ev3dev] Comprenons le mécanisme de contrôle LCD (écran)
Un mémo que j'ai touché au magasin de données avec python
[Python] Masquez l'image dans un cercle à l'aide de Pillow
Créer un environnement Python
Essayez de créer une forme d'onde (spectre audio) qui se déplace en fonction du son avec python
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Utilisez des programmes Python avec le plugin de sortie exec_filter de fluentd
[Python / C] J'ai créé un appareil qui fait défiler sans fil l'écran d'un PC à distance.
Programme Python qui convertit les données ical en texte
Rechercher la table à l'aide de sqlalchemy et créer un dictionnaire
Utilisez des programmes Python avec le plugin de sortie exec de fluentd
Créez une page Web qui exécute un modèle qui augmente la résolution de l'image à l'aide de gradio, ce qui facilite la création d'un écran Web
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
Une histoire qui facilite l'estimation de la surface habitable à l'aide d'Elasticsearch et de Python
Un programme qui redimensionne automatiquement la taille d'image requise pour les icônes d'application iOS en Python