Image Processing for Very Large Images
The key idea here is the partial image descriptor
VIPS(VASARI Image Processing System) 是近几年逐渐兴起的针对大图像数据高效处理的开源库,下面给出一个表格显示出其相对于目前的一些其他开源库,针对同一组5000×5000,8-bit的RGB三通道TIFF图像,在运行时间,内存消耗上的对比,明显可以看出其优势。
Software | Run time (secs real) | Memory (peak RSS MB) | Times slower |
---|---|---|---|
VIPS C/C++ 8.1 | 0.20 | 43 | 1.0 |
Python VIPS 8.1 | 0.30 | 52 | 1.5 |
VIPS command-line 8.1 | 0.55 | 40 | 2.4 |
VIPS C/C++ 8.1, JPEG images | 0.38 | 59 | 2.7 |
ymagine 0.7.0 | 1.07 | 2.7 | 2.8 (compared to vips-c JPEG) |
GraphicsMagick 1.3.20 | 0.67 | 492 | 3.4 |
sips 10.4.4 | 0.74 (est.) | 268 | 3.7 |
ImageMagick 6.8.9-9 | 0.78 | 484 | 3.9 |
VIPS nip2 8.1 | 0.79 | 78 | 4.0 |
RMagick 2.15.2 (ImageMagick 6.8.9) | 0.87 | 684 | 4.4 |
NetPBM 10.0 | 0.93 | 76 | 4.7 |
Pillow 2.7.0 | 0.93 | 207 | 4.7 |
OpenCV 2.4.9 | 1.13 | 206 | 5.7 |
libgd 2.1.1 | 2.34 | 186 | 6.1 (compared to vips-c JPEG) |
Imlib2 1.4.7 | 1.53 | 250 | 7.7 |
ExactImage 0.8.9 | 1.54 | 130 | 7.7 |
FreeImage 3.15.4 (incomplete) | 1.63 | 183 | 8.1 |
gmic 1.5.7.1 | 1.87 | 700 | 9.35 |
ImageScience 1.2.6 (based on FreeImage 3.15.4, incomplete) | 1.9 | 267 | 9.5 |
OpenImageIO 1.3.12 | 2.79 | 811 | 14 |
GEGL 0.2 | 16.2 | 410 | 43 (compared to vips-c JPEG) |
Octave 3.8 | 30 (est.) | 8500 (est.) | 200 |
测试环境:
E5-1650 @ 3.20GHz (HP workstation), Ubuntu 15.04
对应的Memory vs. time
曲线图如下:
可以看出,相比于其它库,vips
处理速度更快,而且消耗的内存更小,但是比较麻烦的是配置比较麻烦…
提供一个下载链接: http://www.vips.ecs.soton.ac.uk/supported/current/win32/
Image Processing for Very Large Images的更多相关文章
- MySQL vs. MongoDB: Choosing a Data Management Solution
原文地址:http://www.javacodegeeks.com/2015/07/mysql-vs-mongodb.html 1. Introduction It would be fair to ...
- mapreduce源码分析总结
一 MapReduce概述 Map/Reduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的,Google已经将它完整的MapReduce论 文公开发布了.其中对 ...
- 什么是Hadoop
配上官方介绍 What Is Apache Hadoop? The Apache™ Hadoop® project develops open-source software for relia ...
- 一些公司对quantitative的要求
来自日月光华BBS: Company: UBS AG Job Title: Quantitative Developers / Analysts (Entry Level, Multiple Posi ...
- 初识分布式计算:从MapReduce到Yarn&Fuxi
这些年,云计算.大数据的发展如火如荼,从早期的以MapReduce为代表的基于文件系统的离线数据计算,到以Spark为代表的内存计算,以及以Storm为代表的实时计算,还有图计算等等.只要数据规模 ...
- MapReduce 原理与 Python 实践
MapReduce 原理与 Python 实践 1. MapReduce 原理 以下是个人在MongoDB和Redis实际应用中总结的Map-Reduce的理解 Hadoop 的 MapReduce ...
- 典型分布式系统分析之MapReduce
在 <分布式学习最佳实践:从分布式系统的特征开始(附思维导图)>一文中,提到学习分布式系统的一个好方法是思考分布式系统要解决的问题,有哪些衡量标准,为了解决这些问题:提出了哪些理论.协议. ...
- 典型分布式系统分析:MapReduce
在 <分布式学习最佳实践:从分布式系统的特征开始(附思维导图)>一文中,提到学习分布式系统的一个好方法是思考分布式系统要解决的问题,有哪些衡量标准,为了解决这些问题:提出了哪些理论.协议. ...
- GitHub awesome Resource
各种Awesome技术资源的资源聚合: https://github.com/sindresorhus/awesome Contents Platforms Programming Languages ...
随机推荐
- 经验之谈—OAuth授权流程图
事实上我们在开发中,常常须要解决获得用户的一些特定的数据,比方:能够选择使用微博登陆.使用QQ登陆等等.然后我们间接的获得用户的头像.昵称等信息.这些都涉及到OAuth授权的内容 OAuth授权有这么 ...
- DirectX11 学习笔记10 - 用文件存储顶点布局
这节须要把顶点布局写在文件中面,为了方便.由于一大串很抽象的坐标放在CPP和程序混在一起很的不方便. 以下全为c++知识,读取文件中面的特定格式的数据: Vertex Count: 36 Data: ...
- ANT公布SVN WEB项目到TOMCAT以及利用post-commit自己主动提交编译更新
开发者在本地提交更新到SVNserver后.往往须要測试人员又一次測试.为了将更新内容即时反映到測试server.能够利用post-commit脚本将SVN更新同步到測试server中. (1)利用S ...
- Maven + SpringMVC + Mybatis
使用IDEA配置Maven + SpringMVC + Mybatis [一步一步踩坑详细配置完成] PS:初学,想使用Maven配置一个SpringMVC的开发环境,照着网上的各种图文解说,配置了好 ...
- 【转】iOS多语言本地化(国际化)设置
原文网址:http://www.jianshu.com/p/2b7743ae9c90 讨论的iOS应用中的多语言设置,Ok 一般是两种情况: 1.根据当前设备语言自动切换显示 2.在应用中可进行语言设 ...
- 关于QObject类的一些理解
QRunnable并没有继承自QObject,所以它和其他QObject组件的通信不能使用传统的信号和槽,要是用信号和槽我们必须将其继承自QObject自动的添加 QThread的退出最好用exit( ...
- BZOJ 2819 DFS序+线段树
非递归的DFS写炸了- 交了一个递归版的 过了---.. //By SiriusRen #include <cstdio> #include <cstring> #includ ...
- Core Java(六)
面向对象语言特性 (一) (一) static 作用于 变量,方法,代码块 静态变量:被类的所有对象共享 在类加载时被加载 优先于对象 Student.country = "中国& ...
- Linux学习日记——源码编译Apache
[本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 config ...
- Java二维码生成与解码工具Zxing使用
Zxing是Google研发的一款非常好用的开放源代码的二维码生成工具,目前源码托管在github上,源码地址: https://github.com/zxing/zxing 可以看到Zxing库有很 ...