它不是 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')