scipy.optimize.minimize 没有改进初始猜测

问题描述

我在下面有这个代码片段:

def transformation(x,*args):
    static = args[0]
    moving = args[1]
    height = len(moving)
    width = len(moving[0])
    theta = x[0]
    tx = x[1]
    ty = x[2]

    moving = ndimage.rotate(moving,theta,reshape=False)
    moving = ndimage.shift(moving,[tx,0])
    moving = ndimage.shift(moving,[0,ty])

    return float(np.sum((np.array(static) - np.array(moving)) ** 2) / (height * width))


if __name__ == '__main__':
    static = imread('./Image_20449.tif')
    moving = imread('./Image_20450.tif')

    static[static < 262] = 0
    moving[moving < 262] = 0
    #40,-124,263
    rs = optimize.minimize(transformation,np.array([40,-125,250]),args=(static,moving),method='Powell')
    print(rs.x)
  • 静态和移动是图像 (2x2) 矩阵
  • static[static
  • 我正在尝试找到优化转换中概述的 SSD 功能的 theta、tx 和 ty 变量
  • 我希望使用 scipy.optimize.minimize 完成上述操作

我的代码可以运行,但输出总是与我最初的猜测非常相似。它没有找到最佳答案。有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)