在.NET中用哪些类/命名空间进行图像处理?

3
我用Python/Numpy/Scipy写了一个图像处理算法库,并想将代码移植到C#和WPF。尽管输入文件为图像(照片),但从概念上讲,对于我的领域问题来说,重要的是它们是浮点数的二维数组,而我进行的操作(灰度转换、模糊、斑点检测、骨架化)甚至包括持久化,最好在浮点“空间”中执行,而不是在整数空间中执行(这意味着通常为字节-uint8-)。
因此,我查看了.NET命名空间,有很多“Drawing”,“Imaging”,“Media”之类的东西,我完全感到困惑。
所以,问题是:哪个.NET类是最明显且常用的用于浮点图像处理的“图像数据容器”。
我知道AForge,但由于我正在学习C#,而且目前我的图像处理需求并不那么重,所以我想给原生的.NET一个机会(但无论如何,这可能是一个坏主意,如果是请告诉我)。

好问题。我见过的最快速的访问方式是通过获取位图字节的指针...因此,也许可以将这些字节读取/转换为新数组中的浮点空间,然后对结果数组进行操作。 - Tim M.
@user629926 我猜测可能会有一些包含与基本图像处理相关的“嵌入式”有用方法的图像类。如果我使用纯粹的原始数组,也许我就必须自己实现这些方法。并且还需要知道在C#中广泛应用的首选类是哪些。 - heltonbiker
1个回答

1

基于您已经拥有的,为什么不寻找在Python中使用的相同库,但是针对C#/.NET?例如,对于数字计算,请查看:

Project: http://numerics.mathdotnet.com/

示例:https://github.com/mathnet/mathnet-numerics/tree/master/src/Examples

至于图像处理的示例,也许查看Paint.NET的源代码(最新开源版本 - openpdn Fork of Paint.NET 3.36.7)可以让您了解使用哪些图像库:

http://code.google.com/p/openpdn/source/browse/#hg%2Fsrc

这两个库都是用C#编写的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接