将图像转换为浮点数组,然后转换回 .NET



我在 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)

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新