You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SIFT匹配后应用Delaunay变换做卫星图像配准的报错如何修复

错误根因

scipy.spatial.Delaunay仅接收形状为(n个点, 2)的二维数组作为输入,但你代码中的src_pts经过reshape(-1, 1, 2)处理后是三维数组,形状为(n个点, 1, 2),维度不匹配触发报错。

修复方法

仅需要调整匹配点坐标的维度处理逻辑,去掉多余的中间维度即可,修改后代码如下:

# 提取匹配点坐标,直接生成二维数组,不需要多余维度
src_pts = np.float32([kp1[m.queryIdx].pt for m in good])
dst_pts = np.float32([kp2[m.trainIdx].pt for m in good])

如果后续调用cv2.PerspectiveTransform等要求输入三维点集的OpenCV函数,再临时做维度转换即可:

# 临时转三维数组适配OpenCV函数要求
src_pts_3d = src_pts.reshape(-1, 1, 2)
dst_pts_3d = dst_pts.reshape(-1, 1, 2)

额外适配提示:你当前的插值逻辑仅处理了匹配点的坐标映射,要得到完整的配准影像,需要遍历目标影像的所有像素点,用训练好的插值器计算每个像素对应的原影像坐标,再做灰度/颜色赋值,才能输出完整的配准后影像。

内容的提问来源于stack exchange,提问作者Nora 27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:15:03