特征匹配 选取 reference image 上的 公共点 及其相应匹配

文章介绍了如何对N张图像进行特征匹配,找出第一张图像作为参考,然后找出剩余图像与参考图像之间的公共关键点。通过FindCommonUV函数处理匹配点列表,结合FilterKeypoints函数筛选出有效关键点。

现在我有 N 张图像,选取第 1 张图像作为 reference image,剩下的图像都要跟第 1 张图像做 feature matching。一共做 N-1 次 feature matching。每次 feature matching 之后,都能得到两个输出,分别是 参与 匹配的两张图像对应的匹配点kp0_numpy, kp1_numpy。
N-1 次 feature matching,就会得到两个 list,input1 跟 input2,分别对应N-1个kp0_numpy跟N-1个kp1_numpy。
现在我需要找到 N-1 个 kp0_numpy 共有的 keypoints,以及这些keypoints 在 每个 kp1_numpy 对应的 keypoints。 下面的 FindCommonUV 函数可以做到。

CombineFeaturePointArrays 函数则是实现将 N-1 个 kp0_numpy 共有的 keypoints,以及这些keypoints 在 每个 kp1_numpy 对应的 keypoints 拼凑成 一个 [2*N, num_feature ] 形状的 np.darray。其中 num_feature 是 公共 keypoints的数目,N 是 图像数目。

函数 FindCommonUV 的输入 input1 跟 input2 是两个 keypoints 的 list。 input1 对应 reference image

def CombineFeaturePointArrays(common_points, matched_points_list):
    # 将common_points和matched_points_list中的数组转置
    transposed_common_points = common_points.T
    transposed_matched_points = [feature_array.T for feature_array in matched_points_list]
    result_array = np.vstack([transposed_common_points, *transposed_matched_points])

    return result_array

def FindCommonUV(input1, input2):
    common_points = None
    matched_points_list 
多模态遥感的精确配准是诸多遥感应用的基本预处理步骤,其配准精度对后续的分析应用产生重要影响。然而,多模态影像间非线性辐射差异较大,导致同名匹配十分困难,多模态遥感影像的自动匹配具有挑战性。传统匹配方法利用灰度信息进行同名识别,受灰度差异影响大,不能应用于多模态遥感影像匹配。最近的局部不变性特征如SIFT算法,对非线性辐射差异敏感,匹配性能也不能满足实际工程需要 [^2]。 有一种新型的多模态遥感影像匹配方法,基于影像间结构特征进行同名匹配,利用具有光照和对比不变性的相位一致性模型构建几何结构特征描述符——相位一致性方法直方图(Histogram of Orientated Phase Congreucy, HOPC)。该方法可实现可见光、红外、SAR、LiDAR和栅格地图等多种多模态遥感影像的自动配准 [^2]。 在相关实验中,选择了三组国产高分卫星影像,参考影像为纠正过的高分三号SAR影像,输入影像分别使用高分二号多光谱影像和资源三号全色影像。基于实验数据采用人工刺的方式在参考影像和配准后的影像上选取50对同名作为检查,通过计算它们的RMSE来表示配准精度。从匹配正确率、配准精度和计算效率等方面对方法进行分析与评价,并将传统的模板匹配方法MI、NCC,以及同样基于结构特征的HOPC描述符,结合局部纠正,与作者的方法进行对比 [^1]。 ### 代码示例(假设为调用HOPC算法的简单示意,实际代码需根据论文和工具包情况) ```python # 假设存在一个hopc_registration函数用于多模态遥感影像配准 # 这里只是示例,实际需要根据对应的库和函数实现 def hopc_registration(reference_image, input_image): # 调用HOPC算法进行配准 registered_image = some_hopc_library.hopc_register(reference_image, input_image) return registered_image # 示例使用 # 加载参考影像和输入影像 # reference_image = load_image('reference_sar_image.tif') # input_image = load_image('input_optical_image.tif') # registered_image = hopc_registration(reference_image, input_image) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值