2013-10-04 4 views
1

Я пытаюсь использовать scipy's curve_fit для вычисления смещения по x и y между двумя изображениями в оттенках серого как 2-D numpy ndarrays. Однако для этого требуется, чтобы параметры функции, которую я кормил curve_fit, нуждались в целых аргументах.scipy curve_fit с целыми параметрами

Итак, у меня есть функция, которая принимает три аргумента: сплющенный массив и смещение вдоль двух осей. Он правильно выполняет смещение и возвращает повторно сплющенный массив для всех целочисленных смещений, но curve_fit всегда возвращает p0.

Можно ли использовать функцию curve_fit с целыми параметрами?

ответ

0

Один из возможных подходов здесь, вероятно, определить функцию двух смещений с плавающей точкой, которая выполняет интерполяцию между целыми точками:

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 
+0

Я могу попробовать, но я думаю, что это может быть немного медленным на 1048x1048 изображений. Считаете ли вы, что это будет полезно использовать методы интерполяции Сципи? – Saethlin

Смежные вопросы