我最近回到图像处理。我之前使用的大部分内容都是Matlab。我想切换到更方便和开放的语言。
在使用了Python库PIL并且痛苦地理解它内置了只有3x3和5x5过滤器内核后,我决定在这里询问是否有人知道好的图像处理库。
现有的图像处理库(任何语言)是什么? 他们是快/成熟还是处于早期阶段?
答案 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/Scipy,Matplotlib和Spyder获得类似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