[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst

Einführung

In diesem Artikel wird davon ausgegangen, dass Sie ev3dev auf Ihrem EV3 installiert haben und über eine SSH-Verbindung verfügen. Wenn Sie die Umgebung nicht erstellt haben, lesen Sie bitte diesen Artikel.

mindstorm-Lass uns EV3 unter Linux steuern! Ev3dev OS und SSH-Verbindung installieren

Was zu machen

mindstorm-Erstellen Sie ein Programm, das den Bildschirm (LCD) des intelligenten Blocks des EV3 erfasst und als Bild speichert. Verwenden Sie die ev3dev-API von Python ev3dev-lang-python.

Informationen zur Umgebungskonstruktion von ev3dev-lang-python finden Sie hier.

Lassen Sie uns EV3-Motoren und -Sensoren mit Python steuern

Programm

screenshot.py


#!/usr/bin/env python3


import sys
from subprocess import call
#Bibliothek zum Umgang mit Bilddaten
from PIL import Image

#Standardmäßig zu speichernder Bildname"screenshot.png "
out_name = sys.argv[1] if len(sys.argv) > 1 else "screenshot.png "

#Erfassen Sie den Bildpuffer und konvertieren Sie ihn in ein PNG-Bild
call(["fbgrab", out_name]);

#Laden Sie das Screenshot-Bild
image = Image.open(out_name)

#Bild in RGB-Format konvertieren
image = image.convert("RGB")

#Bild formatieren
image = image.resize(tuple(i * 2 for i in image.size), Image.NEAREST)


pixel_data = image.load()

#Bildfarbkonvertierung
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])Das von erhaltene Screenshot-Bild ist ein Schwarzweißbild. Sie müssen daher die weißen Pixel in hellgrün konvertieren, um die wahre Bildschirmfarbe darzustellen. Der folgende Teil des Programms realisiert diesen Prozess.

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)

Lauf

Sie können die Speicherbilddatei im ersten Argument angeben.

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

Ich habe so ein Bild test.png

Recommended Posts

[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst
Ein Programm, das Python zum Abspielen von Junk verwendet
[Python] Ein Programm, das die Partitur rundet
[Python] Ein Programm, das die Anzahl der Täler zählt
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 1 ~
[Python] Ein Programm, das die minimalen und maximalen Werte ohne Verwendung von Methoden findet
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 2 ~
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 3 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 4 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 5 ~
Es gibt ein Muster, das das Programm bei Verwendung von Python-Threading nicht gestoppt hat
[Python] Ein Programm, das die häufigsten Vogeltypen findet
Erstellen Sie mit tkinter eine Python-GUI
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
[Python] Ein Programm, das Treppen mit # erstellt
Erstellen Sie mit dem Sympy-Modul ein Diagramm
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
[Python] Erstellen Sie einen LineBot, der regelmäßig ausgeführt wird
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Erstellen Sie eine GIF-Datei mit Pillow in Python
Ein Programm, das doppelte Anweisungen in Python entfernt
Erstellen Sie eine Webmap mit Python und GDAL
Python: Erstellen Sie eine Klasse, die entpackte Zuweisungen unterstützt
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie eine GUI auf dem Terminal mit Flüchen
Ein Shell-Programm, das eine Fibonacci-Sequenz anzeigt
[Python] Ein Programm, das die Differenz zwischen diagonalen Gesamtwerten berechnet
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Eine Geschichte, die praktisch war, als ich versuchte, das Python-IP-Adressmodul zu verwenden
Erstellen Sie ein Python-Modul
Schneiden Sie einen Teil der Zeichenfolge mit einem Python-Slice aus
Ein Hinweis zur Bibliotheksimplementierung, in der Hyperparameter mithilfe der Bayes'schen Optimierung in Python untersucht werden
[Python] Ein Programm, das die kürzeste Anzahl von Schritten in einem Spiel findet, das Wolken überquert
[Python] Generieren Sie ValueObject mit dem vollständigen Konstruktor mithilfe von Datenklassen
Programm, das die CSV-Daten der Transaktionshistorie der SBI Securities-Aktie zusammenfasst [Python3]
Erstellen Sie in Python einen Dekorator, der Argumente dynamisch akzeptiert. Erstellen Sie einen Dekorator
Python-Programm, das nach demselben Dateinamen sucht
[Ev3dev] Lassen Sie uns den Mechanismus der LCD-Steuerung (Bildschirmsteuerung) verstehen
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
[Python] Maskiere das Bild mit Pillow zu einem Kreis
Erstellen Sie eine Python-Umgebung
Versuchen Sie, mit Python eine Wellenform (Audiospektrum) zu erstellen, die sich entsprechend dem Klang bewegt
[Python] Erstellen Sie mit cx_Freeze eine Verteilungsdatei für das Tkinter-Programm
Verwenden Sie Python-Programme mit dem Ausführungs-Plugin exec_filter von fluentd
[Python / C] Ich habe versucht, ein Gerät zu erstellen, das den Bildschirm eines PCs drahtlos aus der Ferne scrollt.
Python-Programm, das ical-Daten in Text konvertiert
Durchsuchen Sie die Tabelle mit sqlalchemy und erstellen Sie ein Wörterbuch
Verwenden Sie Python-Programme mit dem exec Output Plugin von fluentd
Erstellen Sie eine Webseite, auf der ein Modell ausgeführt wird, das die Auflösung des Bilds mithilfe von Gradio erhöht, wodurch das Erstellen eines Webbildschirms vereinfacht wird
Ich habe ein Python-Skript geschrieben, das alle meine Beiträge mit der Qiita API v2 exportiert
Eine Geschichte, die es einfach macht, den Wohnbereich mit Elasticsearch und Python abzuschätzen
Ein Programm, das die für iOS-App-Symbole in Python erforderliche Bildgröße automatisch ändert