图像处理库

时间:2009-09-13 19:24:25

标签: language-agnostic image-processing

我最近回到图像处理。我之前使用的大部分内容都是Matlab。我想切换到更方便和开放的语言。

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

现有的图像处理库(任何语言)是什么? 他们是快/成熟还是处于早期阶段?

8 个答案:

答案 0 :(得分:12)

OpenCV是C中非常快速和成熟的一个。不好的一面是它不是面向对象的,这不是我认为的标准之一。包括连接组件分析等许多功能。

JAI(Java高级成像)快速且非常成熟,也是面向对象的。使用此库可能需要一点热身。但功能强大且易于管理。

如果您打算为OpenCV进行一些学术研究或原型设计,如果您的目标是开发商业或大型软件,我推荐JAI。

<强>更新

OpenCV现在有C ++和Python API。我已经使用OpenCV C ++ 3周了,API比C API更好。 OpenCV更稳定,社区也在增长。在OpenCV中有很多可以使用的高级算法。值得考虑。

答案 1 :(得分:6)

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

答案 2 :(得分:4)

查看python Scipy library 。它是python中的开源快速n维数组操作库。它拥有所有基本的图像处理工具:

它没有Matlab图像处理工具箱的所有更高级的功能。但是,正如Vereb所说,其中很多都可以在ITK中找到(也有python风格)。

就像你一样,我想从matlab到像python这样的动态语言。就像你一样,当我意识到它只是python中的ImageMagick时,我对PIL很​​失望。您仍然需要使用PIL来读取/写入图像。

使用python获取Numpy/ScipyMatplotlibSpyder

获得类似Matlab的图像处理体验。所有这些以及更多内容都方便地打包在Python(X,Y)仅用于Windows。

答案 3 :(得分:3)

Intel Performance Primitives非常快速且非常成熟。大多数功能都是低级的,包括线性滤波器,算术运算,FFT,小波,几何变换(......),但它也包含一些高级算法,例如:用于修复或分割。它非常快,并且有很好的文档记录。我肯定会推荐它用于商业开发(不确定是否有开源许可证)。

答案 4 :(得分:2)

据我所知,ITK用于医学成像:
http://www.itk.org

答案 5 :(得分:2)

OpenCV有python绑定http://opencv.willowgarage.com - 就像Vereb提到的那样,ITK也是一流的。

答案 6 :(得分:2)

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

但你可以使用python(x,y),它带有所有这些工具(以及更多)在开箱即用和python中运行: http://www.pythonxy.com

希望它有所帮助。

答案 7 :(得分:0)

GDAL充当different image formats的成熟代理。多种语言的绑定,包括Python