将图像转换为浮点数组并返回.NET

时间:2012-10-04 13:37:39

标签: c# .net image-processing

我在Python中有代码将图像打开为灰度,将其转换为numpy float数组,对其执行大量数学运算,然后将其标准化并将其转换为二进制图像(每像素1位),将其保存为再次磁盘(PNG文件)。

我应该使用哪些.NET类(最好)来执行类似的操作?

以下是我的Python代码的一个子集:

im = Image.open(in_name)
a  = numpy.asarray(im.convert('L'), dtype=float)  ## implicit conversion to grayscale

## lots of element-wise arithmetical operations with 'a'
## and other similar-shaped arrays from other images

out_im = Image.fromarray(a.astype('uint8')).convert('1')
out_im.save(out_name)

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点。你需要XNA或DirectX才能做到。

在XNA Texture2D对象中包含GetData和SetData方法,它们可以执行您想要的操作。

您还可以在Texture2D上使用HLSL像素着色器来操作它。您可以更改渲染目标以渲染到另一个保存为图像文件的Texture2D。

第二个是最快和最有效的,第一个是最简单的。