如何将图像作为参数从 c# 应用程序传递给 python 脚本而不从磁盘写入/读取它?

问题描述

嗨,我有一个 C# 程序,它打开一个进程并调用一个 python 脚本来对图像执行一些操作。

目前,我正在将图像保存到磁盘并将路径作为参数传递给我的 python 脚本,但我想加快速度并想知道是否可以改用内存流。

var psi = new processstartinfo();
psi.FileName = @"python_interpreter_path";
var script = @"my_python_script_path";
psi.Arguments = script;
psi.UseShellExecute = false;
psi.CreateNowindow = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
var errors = "";
var results = "";
using (var process = Process.Start(psi))
{
       errors = process.StandardError.ReadToEnd();
       results = process.StandardOutput.ReadToEnd();
       Console.WriteLine(errors);
       Console.WriteLine(results);
}

我有一个 python 脚本,它可以解码数据流并使用 cv2.imread() 作为图像打开它。但是我对如何处理我的 c# 代码一无所知。

欢迎任何帮助!谢谢

解决方法

感谢各位指出方向。管道似乎是解决这个问题的一个很好的选择。

我已经测试了这个解决方案并且它有效:Named Pipes between C# and Python

在python端需要安装pywin32: python -m pip install pywin32

谢谢