它不是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实现双三次插值相关推荐

  1. python画代码-Python教程_Python画Mandelbrot集 代码

    Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...

  2. python 死循环程序能占满cpu吗_运行tensorflow python程序,限制对GPU和CPU的占用操作...

    一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用.并且,一般我们的程序也用不了所有的GPU资源,只是强行 ...

  3. Python+PyCharm+PyTorch+Cuda/GPU 安装步骤

    Python+PyCharm+PyTorch+Cuda/GPU 安装步骤 一. 无nvidia显卡,直接用CPU跑程序时 二.有Nvidia显卡,想用GPU跑程序时 2.1 先查版本! 2.2 下载安 ...

  4. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  5. python编程语言_python编程语言的简要历史

    python编程语言 The Python programming language is a general-purpose programming language that has carved ...

  6. 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?

    2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...

  7. python超级计算机_Python高性能计算库——Numba

    摘要:在计算能力为王的时代,具有高性能计算的库正在被广泛大家应用于处理大数据.例如:Numpy,本文介绍了一个新的Python库--Numba, 在计算性能方面,它比Numpy表现的更好. 最近我在观 ...

  8. python困难_Python开发总感觉困难重重,可能是你没用上这些开发工具

    Python工具多.功能搞不清.看见就头大?不存在的!千锋广州Python小编都帮你整理好了,快来上这波Python工具功能的车! Tkinter Python默认的图形界面接口.Tkinter是一个 ...

  9. 菜鸟教程python正则表达式_python 正则表达式详解

    python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...

  10. python参数_python 参数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python参数传递时,主要有位置参数和关键字参数. 1. 位置参数:顾名思义, ...

最新文章

  1. Github热榜:2021年33篇最酷AI论文综述!多位华人作者入选
  2. [新手必看] 17个常见的Python运行时错误
  3. java listfiles 使用_Java中list()和listFiles()方法之间的区别
  4. 「Java Web」主页静态化的实现
  5. ACL 2019开源论文 | 句对匹配任务中的样本选择偏差与去偏方法
  6. leetcode133. 克隆图(bfs)
  7. 【转载】小米2进入recovery的方法
  8. Spring Boot : 自定义 Starter
  9. Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
  10. Win10安装Eclipse教程
  11. 遇到from playsound import playsoundModuleNotFoundError: No module named ‘playsound‘解决办法
  12. A-PDF All to MP3 Converter 2.0.0 (.wav) Buffer Overflow Exploit 分析
  13. 无损压缩算法专题——无损压缩算法介绍
  14. QT随机放1个1和七个2_才知道,1个橙子放2个鸡蛋,只要拌一拌,出锅孩子吃了提高免疫力|橙子|鸡蛋|蒸蛋|食盐|白糖...
  15. 20200724-Java-抽象类、接口
  16. 华为手机使用应用沙盒一键修改电池信息
  17. 计算机专业武汉的就业方向,计算机专业好就业吗
  18. 性能优化系列:每个程序员都应该知道的数字
  19. 水电站生态流量监测 水利RTU遥测终端
  20. idea将junit设置模板_IDEA配置JUnit进行单元测试

热门文章

  1. matlab随机生成点图,matlab随机生成散点图
  2. svn忽略指定文件或目录
  3. android9 三星 港版,三星S10+官方港版安卓9完整固件升级更新包:TGY-G9750ZHU1ASF1
  4. webhook机器人php源码,机器人之钉钉机器人webhook 对接 ThinkPHP3.2 实现Bug告警通知...
  5. 宏观经济学——GDP
  6. SQL Server 2008安装图解教程
  7. 形式语言与自动机 图灵机
  8. matlab单回路和串级控制回路,串级控制回路PID参数如何整定?
  9. 简历在线制作计算机,简历在线生成,在线生成PDF或word格式简历
  10. Oauth2.0 资源服务器搭建