我帮助在libvips wiki 上维护一个页面,比较20个左右的常用图像处理库,以便快速和内存使用,包括相当多的Python系统。
基准测试非常简单:加载5,000 x 5,000像素RGB TIFF,从每个边缘裁剪100像素,缩小10%,用3x3拉普拉斯锐化,然后再次保存。这是一个愚蠢的测试,但实现起来很简单,它可以进行卷积,加载/保存,重采样和像素操作。
测试是在libvips wiki上进行的,所以当然libvips(以及pyvips,Python绑定)获胜,但结果是一个合理的指导,至少对于这样的简单任务,根据我的经验。比较代码也很有趣。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
scikit 1.2, numpy 1.15.4 | 4.33 | 361
这是图形相同的事情: