0

我在 Python 中有代码,可以将图像打开为灰度,将其转换为 numpy 浮点数组,对其执行大量数学运算,然后对其进行规范化并将其转换为二进制图像(每像素 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)
4

1 回答 1

0

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

在 XNA Texture2D对象中包含 GetData 和 SetData 方法,它们可以满足您的需求。

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

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

于 2012-10-04T13:52:01.113 回答