2017-08-26 34 views
2

Ich benutze Nodejs, um ein Python-Skript aufzurufen, das Objekterkennung für einige JPG-Bilder von der Festplatte lesen. Diese Bilder werden vor dem Aufruf des Skripts von nodejs auf die Festplatte geschrieben.Wie mehrere Bilder als Eingabe an Python-Skript übergeben werden

Um es dynamischer und schneller zu machen, möchte ich jetzt mehrere Bilder als mehrdimensionales Array von Nodejs an das Python-Skript senden. Dies erspart mir das Schreiben und Lesen von Bildern von der Festplatte. Ist dies der beste Weg, dies zu tun? Wenn ja, wie gebe ich Bilder als mehrdimensionales Array an Python-Skript weiter? Oder Gibt es eine bessere Lösung?

+0

Ich denke, übergeben Sie den Pfad der Bilder ist besser als mehrdimensionale Arrays übergeben. – stamaimer

+0

Aber das Schreiben auf die Festplatte (nodejs) und Lesen von (Python) Festplatte sollte viel langsamer sein als das Lesen von RAM rechts? Oder gibt es einen anderen Vorteil? @ stamaimer – Tahlil

Antwort

1

Ihre Frage lässt viele Details aus, aber wenn Sie wörtlich "Eingabe an ein Python-Skript übergeben" meinen, haben Sie zwei Optionen: Befehlszeilenargumente oder Standardeingabe.

Während es technisch möglich ist, eine Reihe von Bildern von der Standardeingabe zu lesen, ist es sicherlich komplizierter ohne Nutzen, um es sich zu lohnen.

Befehlszeilenargumente können nur Strings sein, gelesen von sys.argv Sie könnten zwar versuchen, mehrere Befehlszeilenargumente zu verwenden, aber es wäre problematischer, ein Array von Strings in ein mehrdimensionales Array zu übersetzen.

So, tl; dr Erstellen Sie ein Dateiformat, mit dem Sie eine Reihe von Bildern als mehrdimensionale Array von Dateipfaden (oder URLs, wenn Sie möchten) darstellen können. Am einfachsten wäre es einfach, eine CSV-Datei zu verwenden und sie mit dem Python-Modul csv einzulesen.

import csv 
image_path_array = list(csv.reader(open('filename.csv','r'))) 
Verwandte Themen