
只有两个小问题:
1)您的xx,yy超出x,y的范围(您 可以 推断,但我想您不想这样做。)
2)您的样本大小对于kx和ky为3(默认值)而言太小。将其降低到2并得到二次拟合而不是三次拟合。
import numpy, scipyfrom scipy import interpolatekernelIn = numpy.array([ [0,-2,0], [-2,11,-2], [0,-2,0]])inKSize = len(kernelIn)outKSize = 5kernelOut = numpy.zeros((outKSize),numpy.uint8)x = numpy.array([0,1,2])y = numpy.array([0,1,2])z = kernelInxx = numpy.linspace(x.min(),x.max(),outKSize)yy = numpy.linspace(y.min(),y.max(),outKSize)newKernel = interpolate.RectBivariateSpline(x,y,z, kx=2,ky=2)kernelOut = newKernel(xx,yy)print kernelOut##[[ 0. -1.5 -2. -1.5 0. ]## [ -1.5 5.4375 7.75 5.4375 -1.5 ]## [ -2. 7.75 11. 7.75 -2. ]## [ -1.5 5.4375 7.75 5.4375 -1.5 ]## [ 0. -1.5 -2. -1.5 0. ]]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)