双三次插值 python实现_Python:用GPU实现双三次插值
它不是GPU(而是尝试利用线程和CPU的向量单元),但是pyvips比scipy快很多,您可以测试一下。在
我做了个基准:import sys
import time
import scipy.ndimage
import pyvips
scale = 10
n_loops = 10
start = time.time()
test_image = scipy.ndimage.imread(sys.argv[1])
for i in range(0, n_loops):
result = scipy.ndimage.interpolation.zoom(test_image, scale)
end = time.time()
print 'scipy took', end - start
start = time.time()
test_image = pyvips.Image.new_from_file(sys.argv[1])
for i in range(0, n_loops):
result = test_image.resize(scale).write_to_memory()
end = time.time()
print 'pyvips took', end - start
# transform with both libraries to compare results
ndi = scipy.ndimage.imread(sys.argv[1])
result = scipy.ndimage.interpolation.zoom(ndi, scale)
scipy.misc.imsave('ndi.tif', result)
im = pyvips.Image.new_from_file(sys.argv[1], access='sequential')
result = im.resize(scale)
result.write_to_file('pyvips.tif')
两者都默认为双三次方。pyvips是一个惰性库,因此您需要在末尾添加额外的write_to_memory()来生成内存数组。在
在这个运行Ubuntu17.10的四核八线程桌面上,有所有库的打包版本和512x512单声道版本的“lena”测试映像,我看到:
^{pr2}$
GPU升级版显然会再快一次,但也许pyvips足够快了?在
如果您比较两个输出图像,您将看到scipy图像上移了一小部分。对于非常小的输入图像,您可以更清楚地看到发生了什么,例如,这个3x3像素的图像:
当scipy和pyvips缩放20倍时:
这让我很困惑。此外,它们显然使用不同的内核,这也很奇怪。在
双三次插值 python实现_Python:用GPU实现双三次插值相关推荐
- python画代码-Python教程_Python画Mandelbrot集 代码
Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...
- python 死循环程序能占满cpu吗_运行tensorflow python程序,限制对GPU和CPU的占用操作...
一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用.并且,一般我们的程序也用不了所有的GPU资源,只是强行 ...
- Python+PyCharm+PyTorch+Cuda/GPU 安装步骤
Python+PyCharm+PyTorch+Cuda/GPU 安装步骤 一. 无nvidia显卡,直接用CPU跑程序时 二.有Nvidia显卡,想用GPU跑程序时 2.1 先查版本! 2.2 下载安 ...
- c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...
用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...
- python编程语言_python编程语言的简要历史
python编程语言 The Python programming language is a general-purpose programming language that has carved ...
- 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?
2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...
- python超级计算机_Python高性能计算库——Numba
摘要:在计算能力为王的时代,具有高性能计算的库正在被广泛大家应用于处理大数据.例如:Numpy,本文介绍了一个新的Python库--Numba, 在计算性能方面,它比Numpy表现的更好. 最近我在观 ...
- python困难_Python开发总感觉困难重重,可能是你没用上这些开发工具
Python工具多.功能搞不清.看见就头大?不存在的!千锋广州Python小编都帮你整理好了,快来上这波Python工具功能的车! Tkinter Python默认的图形界面接口.Tkinter是一个 ...
- 菜鸟教程python正则表达式_python 正则表达式详解
python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...
- python参数_python 参数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python参数传递时,主要有位置参数和关键字参数. 1. 位置参数:顾名思义, ...
最新文章
- Github热榜:2021年33篇最酷AI论文综述!多位华人作者入选
- [新手必看] 17个常见的Python运行时错误
- java listfiles 使用_Java中list()和listFiles()方法之间的区别
- 「Java Web」主页静态化的实现
- ACL 2019开源论文 | 句对匹配任务中的样本选择偏差与去偏方法
- leetcode133. 克隆图(bfs)
- 【转载】小米2进入recovery的方法
- Spring Boot : 自定义 Starter
- Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
- Win10安装Eclipse教程
- 遇到from playsound import playsoundModuleNotFoundError: No module named ‘playsound‘解决办法
- A-PDF All to MP3 Converter 2.0.0 (.wav) Buffer Overflow Exploit 分析
- 无损压缩算法专题——无损压缩算法介绍
- QT随机放1个1和七个2_才知道,1个橙子放2个鸡蛋,只要拌一拌,出锅孩子吃了提高免疫力|橙子|鸡蛋|蒸蛋|食盐|白糖...
- 20200724-Java-抽象类、接口
- 华为手机使用应用沙盒一键修改电池信息
- 计算机专业武汉的就业方向,计算机专业好就业吗
- 性能优化系列:每个程序员都应该知道的数字
- 水电站生态流量监测 水利RTU遥测终端
- idea将junit设置模板_IDEA配置JUnit进行单元测试
热门文章
- matlab随机生成点图,matlab随机生成散点图
- svn忽略指定文件或目录
- android9 三星 港版,三星S10+官方港版安卓9完整固件升级更新包:TGY-G9750ZHU1ASF1
- webhook机器人php源码,机器人之钉钉机器人webhook 对接 ThinkPHP3.2 实现Bug告警通知...
- 宏观经济学——GDP
- SQL Server 2008安装图解教程
- 形式语言与自动机 图灵机
- matlab单回路和串级控制回路,串级控制回路PID参数如何整定?
- 简历在线制作计算机,简历在线生成,在线生成PDF或word格式简历
- Oauth2.0 资源服务器搭建