如何将多个图像作为输入传递给python脚本

Posted

技术标签:

【中文标题】如何将多个图像作为输入传递给python脚本【英文标题】:How to pass multiple images as input to python script 【发布时间】:2018-02-04 10:46:24 【问题描述】:

我使用 nodejs 调用一个 python 脚本,该脚本对从硬盘读取的一些 jpg 图像运行对象检测。这些图像在调用脚本之前由 nodejs 写入磁盘。

为了使其动态和更快,现在我想将多个图像作为多维数组从 nodejs 发送到 python 脚本。这节省了我从磁盘写入和读取图像的时间。这是最好的方法吗?如果是这样,我如何将图像作为多维数组传递给 python 脚本?或者有没有更好的解决方案?

【问题讨论】:

我认为传递图像的路径比传递多维数组更好。 但是写入硬盘(nodejs)和读取(python)硬盘应该比从内存读取慢得多吧?或者还有什么其他好处吗? @stamaimer 【参考方案1】:

您的问题遗漏了很多细节,但如果您的字面意思是“将输入传递给 python 脚本”,那么您有两个选择:命令行参数或标准输入。

虽然从标准输入读取一系列图像在技术上是可行的,但它肯定更复杂,没有任何好处值得这样做。

命令行参数只能是字符串,从sys.argv读取所以,虽然你可以尝试使用多个命令行参数,但将字符串数组转换为多维数组会更麻烦。

所以,tl;dr 创建一种数据文件格式,让您可以将一组图像表示为文件路径(或 URL,如果需要)的多维数组。到目前为止,最简单的方法就是使用 CSV 文件并使用csv Python 模块将其读入。

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

【讨论】:

以上是关于如何将多个图像作为输入传递给python脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从子脚本传递给同时运行的父脚本?

使用 argparse 将多个 bash 数组传递给 Python

如何将视频文件作为输入传递给 NodeJS 中的子进程并接收帧/图像作为输出?

将图像指针传递给python中的DLL函数

如何将多个图像作为输入提供给卷积神经网络

从批处理文件运行python脚本时,如何自动将输入值传递给python“输入”函数