微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。