答案 0 :(得分:4)
我帮助维护libvips Wiki上的页面,比较了20个左右的常见图像处理库的速度和内存使用情况,其中包括许多Python系统。
https://github.com/libvips/libvips/wiki/Speed-and-memory-use
基准非常简单:加载5,000 x 5,000像素的RGB TIFF,从每个边缘裁剪100像素,缩小10%,以3x3卷积锐化,然后再次保存。这是一个愚蠢的测试,但是易于实现,并且可以进行卷积,加载/保存,重采样和像素操作。
该测试在libvips Wiki上进行,因此libvips(和Python绑定pyvips)当然是赢家,但是根据我的经验,至少对于像这样的简单任务,结果是合理的指导。 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
这是图形上的同一件事:
答案 1 :(得分:2)
我广泛使用了mahotas,但目前已切换到scikit-image。我发现scikit-image的功能比mahotas更广泛(我需要经常测试各种图像处理算法)。 Mahotas的主要优点是具有良好文档的简单代码,这与其mahotas-principles是一致的。因此,如果您需要基本功能和更快的操作,请选择Mahotas。我还没有对scipy-nd图像做过详细的研究,但是看看可用函数列表,skimage会有上手。