我最近重新开始进行图像处理。我之前使用的大部分是Matlab。我想转换到一种更方便、开放的语言。
在使用Python库PIL并痛苦地理解它内置的只有3x3和5x5滤波器核之后,我决定在这里问一下是否有人知道好的图像处理库。
现有的图像处理库(任何语言)都有哪些?它们快速/成熟/仍处于早期阶段吗?
我最近重新开始进行图像处理。我之前使用的大部分是Matlab。我想转换到一种更方便、开放的语言。
在使用Python库PIL并痛苦地理解它内置的只有3x3和5x5滤波器核之后,我决定在这里问一下是否有人知道好的图像处理库。
现有的图像处理库(任何语言)都有哪些?它们快速/成熟/仍处于早期阶段吗?
OpenCV是一款用C语言编写的非常快速且成熟的库。不足之处在于它不是面向对象的,这可能不符合您的要求之一。该库包含了许多功能,例如连通组件分析。
JAI(Java高级图像)是一款快速且非常成熟的面向对象库。您可能需要一点时间来适应该库。但是它功能强大且易于管理。
如果您计划进行一些学术研究或原型制作,请选择OpenCV;如果您的目标是开发商业或大规模软件,则建议使用JAI。
更新:
现在OpenCV有C++和Python API。我已经使用OpenCV C++三周了,API比C API更好。OpenCV更加稳定,并且社区也在不断壮大。此外,OpenCV中还有许多易于使用的高级算法。值得考虑。
请查看Python的Scipy库。它是一个开源的快速n维数组操作库,使用Python语言编写。它具备所有基本的图像处理工具:
它没有Matlab的图像处理工具箱中所有更高级的功能。然而,正如Vereb所建议的那样,许多这些功能可以在ITK中找到(也有Python版本)。
就像您一样,我想摆脱Matlab,转向像Python这样的动态语言。就像您一样,当我意识到PIL只是Python中的ImageMagick时,我感到失望。您仍然需要使用PIL来读取/写入图像。
要使用Python获得类似于Matlab的图像处理体验,请获取Numpy/Scipy、Matplotlib和Spyder等。所有这些都可以方便地打包在仅适用于Windows的Python(X,Y)中。
英特尔性能原语非常快速和成熟。大多数功能是低级别的,包括线性滤波器、算术运算、FFT、小波、几何变换等,但也包含一些高级算法,例如修复或分割。它非常快速,文档齐全。我肯定会建议在商业开发中使用它(不确定是否有开源许可证)。
但是您可以使用python(x,y),它带有所有这些工具(以及更多)并在Python中立即运行: http://www.pythonxy.com
希望对您有所帮助。