求助:使用skimage.transform.estimate_transform得到全NaN变换参数的问题
关于skimage.transform.estimate_transform返回全NaN的问题
你遇到的这个情况我之前也碰过几次,通常都是特征匹配环节出了问题导致的,常见原因有这几个:
- 两张图像的特征点对应关系完全失效,没有足够多的有效匹配对支撑变换矩阵计算
- 输入的点对数量没达到变换模型的最低要求(比如仿射变换至少需要3对对应点,透视变换得4对)
- 点对里混了太多异常值,算法根本拟合不出合理的变换参数
给后续遇到同类问题的小建议(虽然你已经找到解决方案啦)
- 先检查你用的特征匹配结果,比如把匹配的点对可视化出来,看看是不是错配太多
- 试试用
skimage.transform.ransac来包裹变换模型,它能自动过滤掉离谱的异常点对,提升拟合稳定性 - 确认下源点和目标点的顺序有没有搞反,这个低级错误也经常导致奇怪的结果
你的解决方案真的很合适
开心你找到了imreg_dft!这个工具基于DFT做图像配准,不用手动折腾特征点提取和匹配,对刚性、仿射类的图像配准场景适配性特别好,完美避开了之前的坑。
内容的提问来源于stack exchange,提问作者Joe Flip
相关产品推荐
相关产品推荐

