我正在尝试使用 scipy 的 curve_fit 来计算两个灰度图像之间的 x 和 y 偏移量作为二维 numpy ndarrays。但是,这要求我提供的函数的参数 curve_fit 需要整数参数。
所以我有一个接受三个参数的函数:一个扁平数组,以及沿两个轴的偏移量。它正确完成偏移并为所有整数偏移返回一个重新展平的数组,但curve_fit总是返回p0。
是否可以让 curve_fit 与整数参数一起工作?
这里一种可能的方法可能是定义两个浮点偏移的函数,该函数在整数点之间执行插值:
def func_orig(xint,yint):
....
def func_new(x,y):
x1 = int(x)
y1 = int(y)
x2 = x1 + 1
y2 = y1 + 1
val = func_orig(x1,y1) * (x2-x)*(y2-y)+
func_orig(x1,y2) * (x2-x)*(y1-y)+
func_orig(x2,y1) * (x1-x)*(y2-y)+
func_orig(x2,y2) * (x1-x)*(y1-y)
val = val / (x2-x1)/(y2-y1)
return val