本文实现的是双线性插值,cubic道理一样
需要注意的是,当矩阵特别大时候,加入numba速度很快
矩阵小的话,提取numba有开销
import numba as nb
import numpy as np
import time
def interp2(x,y,img,xi,yi):
"""
按照matlab interp2写的加速2d插值
当矩阵规模很大的时候,numba就快,矩阵规模小,则启动numba有开销
原图是规整矩阵才能这么做
"""
# @nb.jit
def _interpolation(x,y,m,n,mm,nn,zxi,zyi,alpha,beta,img,return_img):
qsx = int(m/2)
qsy = int(n/2)
for i in range(mm): # 行号
for j in range(nn):
zsx,zsy = int(zxi[i,j]+qsx),int(zyi[i,j]+qsy) # 左上的列坐标和行坐标
zxx,zxy = int(zxi[i,j]+qsx),int(zyi[i,j]+qsy+1) # 左下的列坐标和行坐标
ysx,ysy = int(zxi[i,j]+qsx+1),int(zyi[i,j]+

本文介绍了一种使用Python实现的双线性插值方法,并对比了使用与不使用numba加速的情况。对于大规模数据,使用numba能显著提高运行效率。
最低0.47元/天 解锁文章
5675

被折叠的 条评论
为什么被折叠?



