图像处理库

13

我最近重新开始进行图像处理。我之前使用的大部分是Matlab。我想转换到一种更方便、开放的语言。

在使用Python库PIL并痛苦地理解它内置的只有3x3和5x5滤波器核之后,我决定在这里问一下是否有人知道好的图像处理库。

现有的图像处理库(任何语言)都有哪些?它们快速/成熟/仍处于早期阶段吗?


你想要做哪种类型的函数?你需要多全面的库? - James Black
@James,我自己目前的需求很小,但我们让这个问题尽可能地广泛吧。至少,能够使用任意核进行过滤对于任何像样的图像处理库来说都是必须的。我猜傅里叶变换或几何变换也是基础知识的一部分。 - glmxndr
9个回答

12

OpenCV是一款用C语言编写的非常快速且成熟的库。不足之处在于它不是面向对象的,这可能不符合您的要求之一。该库包含了许多功能,例如连通组件分析。

JAI(Java高级图像)是一款快速且非常成熟的面向对象库。您可能需要一点时间来适应该库。但是它功能强大且易于管理。

如果您计划进行一些学术研究或原型制作,请选择OpenCV;如果您的目标是开发商业或大规模软件,则建议使用JAI。

更新:

现在OpenCV有C++和Python API。我已经使用OpenCV C++三周了,API比C API更好。OpenCV更加稳定,并且社区也在不断壮大。此外,OpenCV中还有许多易于使用的高级算法。值得考虑。


6

我很惊讶没有人提到ImageMagick。它是一个非常流行的开源图像处理库,几乎支持任何语言的绑定。


ImageMagick 在许多任务上也非常缓慢。 - unixman83

4

请查看Python的Scipy库。它是一个开源的快速n维数组操作库,使用Python语言编写。它具备所有基本的图像处理工具:

它没有Matlab的图像处理工具箱中所有更高级的功能。然而,正如Vereb所建议的那样,许多这些功能可以在ITK中找到(也有Python版本)。

就像您一样,我想摆脱Matlab,转向像Python这样的动态语言。就像您一样,当我意识到PIL只是Python中的ImageMagick时,我感到失望。您仍然需要使用PIL来读取/写入图像。

要使用Python获得类似于Matlab的图像处理体验,请获取Numpy/ScipyMatplotlibSpyder等。所有这些都可以方便地打包在仅适用于Windows的Python(X,Y)中。


3

英特尔性能原语非常快速和成熟。大多数功能是低级别的,包括线性滤波器、算术运算、FFT、小波、几何变换等,但也包含一些高级算法,例如修复或分割。它非常快速,文档齐全。我肯定会建议在商业开发中使用它(不确定是否有开源许可证)。


2
正如有人提到的那样,您可以使用ITK,它可以与VTK一起作为可视化工具包使用。唯一的问题是,如果您要使用它们的Python包装器(甚至更难如果您尝试构建第三方开源项目wrapITK),则会发现它们不太容易构建。

但是您可以使用python(x,y),它带有所有这些工具(以及更多)并在Python中立即运行: http://www.pythonxy.com

希望对您有所帮助。


2

最快、最专业的图像处理库(及完整的SDK)是HALCON。(www.mvtec.com)它不是开源的,但完全支持C#、C++、C、VB.Net等语言...


2

2

如果已安装IPP,openCV将使用它。 - Martin Beckett

0

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