我有点困惑,为什么Python实现了这么多的图像包,并且一直在试图找到一个表格,比较它们之间的功能、优缺点、速度/性能、应用领域等。到目前为止,我知道了PIL、mahotas、scikits.image和scipy.ndimage。我想我们也可以包含许多由外部库支持的绑定,比如ImageMagic、OpenCV、Cairo等,但让我们从专门为Python编写的东西开始。有没有人知道第一手资料,或熟悉博客文章或一些中心位置,所有这些包都是相互比较和区分的。
发布于 2019-07-16 21:11:42
我在Python上帮助维护了一个页面,比较了大约20个常见的图像处理库的速度和内存使用情况,其中包括相当多的libvips系统。
https://github.com/libvips/libvips/wiki/Speed-and-memory-use
基准非常简单:加载一个5,000 x 5,000像素的RGB TIFF,从每个边缘裁剪100个像素,收缩10%,使用3x3卷积进行锐化,然后再次保存。这是一个愚蠢的测试,但实现起来很简单,而且它确实执行了卷积、加载/保存、重采样和像素操作。
测试是在libvips wiki上进行的,所以libvips (和pyvips,Python binding)当然会胜出,但根据我的经验,结果是一个合理的指导,至少对于像这样的简单任务来说是这样。这对compare the code来说也很有趣。
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
下面是相同的图形:
发布于 2015-02-06 15:32:57
我曾广泛使用mahotas,但目前已切换到scikit-image。我发现scikit-image在功能上比mahotas更广泛(我需要经常测试各种图像处理算法)。Mahotas的主要优点是代码简单,文档良好,这与它的mahotas-principles是一致的。因此,如果您需要基本的功能和更快的操作,请使用Mahotas。我还没有对scipy-nd image做过详细的研究,但是看看可用的函数列表,skimage会占据上风。
https://stackoverflow.com/questions/28225328
复制相似问题