比较和对比Python';它有许多图像处理库

比较和对比Python';它有许多图像处理库,python,image-processing,packages,Python,Image Processing,Packages,我有点困惑,为什么Python实现了这么多的映像包,并且一直试图找到一个表来比较和对比它们之间的特性、优缺点、速度/性能、应用领域等。到目前为止,我知道PIL、mahotas、scikits.image和scipy.ndimage。我想我们还可以包括许多外部库支持的绑定,如ImageMagic、OpenCV、Cairo等,但让我们从专门为Python编写的东西开始。是否有人知道第一手资料,或者熟悉博客帖子或某个中心位置,在那里所有这些软件包都可以相互比较和区分。我已经广泛使用了mahotas,但

我有点困惑,为什么Python实现了这么多的映像包,并且一直试图找到一个表来比较和对比它们之间的特性、优缺点、速度/性能、应用领域等。到目前为止,我知道PIL、mahotas、scikits.image和scipy.ndimage。我想我们还可以包括许多外部库支持的绑定,如ImageMagic、OpenCV、Cairo等,但让我们从专门为Python编写的东西开始。是否有人知道第一手资料,或者熟悉博客帖子或某个中心位置,在那里所有这些软件包都可以相互比较和区分。

我已经广泛使用了mahotas,但目前已切换到scikit image。我发现scikit image的功能比mahotas更广泛(我需要经常测试各种图像处理算法)。Mahotas的主要优点是代码简单,文档良好,这与它的。因此,如果您需要基本功能和更快的操作,请选择Mahota。我还没有对scipy nd image做过详细的研究,但看看可用函数的列表,Skipage会占上风。

我帮助在wiki上维护了一个页面,比较了20个左右常见的图像处理库的速度和内存使用情况,包括相当多的Python系统

基准测试非常简单:加载一个5000 x 5000像素的RGB TIFF,从每条边裁剪100像素,缩小10%,用3x3卷积锐化,然后再次保存。这是一个愚蠢的测试,但实现起来很简单,而且它确实执行卷积、加载/保存、重采样和像素操作

测试是在libvips wiki上进行的,因此libvips(和Python绑定)当然会获胜,但根据我的经验,测试结果是一个合理的指南,至少对于像这样的简单任务是如此。这也很有趣

以下是同样的图形:


我只是想知道Python魔杖在你的列表中的位置。嘿,弗雷德,我猜它和IM很接近,但我没有直接测试过它。如果你知道如何在魔杖中实现这一点,请打开PR。你好,约翰,我将尝试为你制作一个Python魔杖脚本,并发送一个请求。谢谢,更新了,谢谢你。我也会更新维基。谢谢你,弗雷德,补充一下会很有趣的。我应该重新运行ubuntu 19.04的测试。
System                    | Run time (secs) | Peak mem use (MB)
---------------------------------------------------------------
libvips C 8.8             | 0.15            |  40 
pyvips 2.1.6              | 0.18            |  49 
Pillow-SIMD 5.3           | 0.36            | 230 
NetPBM 10.0-15.3          | 0.60            |  75 
sips 10.4.4               | 0.70            | 268 
GraphicsMagick 1.3.28     | 0.64            | 493 
ImageMagick 6.9.7-4       | 0.82            | 463 
OpenCV 3.2                | 0.93            | 222 
ImageMagick 7.0.8         | 1.37            | 733 
ImageJ 1.51               | 2.84            | 770 
scipy 1.2 + Pillow        | 4.33            | 361