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