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 ...
随机推荐
- mybatis入门截图二
-------------------- 线程不安全问题 首先明白什么是线程不安全: 举例:struts2中,每个action中都定义了model模型对象(action类中是全局对象的存在 数据域属 ...
- selenium+java处理鼠标悬停
1.元素比较明确(可视) 2.元素隐藏,需要鼠标移动到一定地方才显现(下图为某论坛列表,需要将鼠标移动到列表才显示操作按钮)
- 洛谷—— P1238 走迷宫
https://www.luogu.org/problem/show?pid=1238 题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走 ...
- [Tailwind] Extending Tailwind with Responsive Custom Utility Classes
You are able to extend the custom css with hover, focus, group-hover, responsive variants class in t ...
- HDU 4046 Panda(树状数组)
Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 最全Pycharm教程(38)——Pycharm版本号控制之远程共享
1.主题 介绍怎样通过GitHub共享你的本地Git版本号库 2.准备工作 (1)Pycharm版本号为2.7或者更高 (2)Git以及GitHub可用 (3)有GitHub storage的读写权限 ...
- 程序猿爱情表白专用html5动画网页的代码
程序猿爱情表白专用html5动画网页的代码 下载地址:源代码 程序员表白专用的html5动画特效网页,真的挺羡慕创作者的水平,有这水平能够把爱表白给想表白的人,不要以为那些鲜花是用 的图片.你会发如今 ...
- UNIX环境高级编程(5):文件I/O(1)
UNIX系统中的大多数文件I/O仅仅须要用到5个函数:open.read.write.lseek以及close.本章说明的函数常常称为"不带缓冲的I/0",术语不带缓冲指的是每一个 ...
- 【转】iOS 设置APP的名称(浅述APP版本国际化与本地化)
原文网址:http://www.jianshu.com/p/a3a70f0398c4 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名 ...
- WCF:目录
ylbtech-WCF:目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtech.c ...