python - 在 Python .Net 中将 C# 字节数组转换为 numpy 数组

标签 python .net arrays numpy python.net

我尝试在使用 Python.NET 的 Python 应用程序中使用 .NET 程序集。 C# 代码捕获一个图像,我想与 python 一起使用。假设我有以下 C# 方法:

public static byte[] Return_Image_As_Byte_Array()
    {
        Image image = Image.FromFile("C:\path\to\an\image");
        ImageConverter imageConverter = new ImageConverter();
        byte[] ByteArray = (byte[])imageConverter.ConvertTo(image, typeof(byte[]));
        return ByteArray;
    }

当我在 python 中使用 Python.Net 时,我执行以下操作:
import clr
clr.AddReference('MyAssembly')
from MyAssembly import MyClass
print(MyClass.Return_Image_As_Byte())

这给了我输出:
<System.Byte[] at 0xb7ba20c080>

有没有办法将这个图像从 C# 转换为像 numpy 数组这样的原生 python 类型?

最佳答案

如果您正在寻找性能:
我发现 np.fromiter() (numpy) 比上面@dlammy url 链接中提供的答案快 6 倍,作为对问题的回应。使用的函数是 asNumpyArray()网址:https://github.com/pythonnet/pythonnet/issues/514
由于时间有这样的区别,我认为只有一次定时运行就足够了,而不是平均结果。
我的结果:np.fromiter() : 67.914736sasNumpyArray() : 334.5198s
解决方案在这里找到:https://stackoverflow.com/a/61077271/4084346

关于python - 在 Python .Net 中将 C# 字节数组转换为 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35768063/

相关文章:

Python:写入文本文件时每N个字符结束行

Python re.findall 之后返回带有不需要的字符串的链接

c# - Datagridview CellValueChanged 事件抛出 InvalidOperationException

c# - 为什么 KeyValueConfigurationCollection 没有密封?

php - 检测数组值是否包含特定文本PHP

Python:如何查找模式(第一列 - 对象),按第二列分组,输出到第三列

python - 如何在 Django 模板中建立操作的优先级?

c# - 此 WCF 客户端代码会导致内存泄漏吗?

c - 将 3D 数组(字符串的 2D 数组)传递给函数并在那里编辑它

c - 使用函数 findMax(int **a,int m, int n) 在矩阵中查找最大元素