OpenCV图像注册模块

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

注册模块实现了参数化图像配准。所实现的方法是直接对齐(direct alignment),即,它直接使用像素值来计算一对图像之间的配准,与基于特征的配准方法相对。该实现基本上遵循了254中对应的部分。

基于特征的方法在尝试配准在不同光照条件或曝光时间下拍摄的图像,或当图像仅部分重叠时,相比基于像素的方法具有一些优势。另一方面,与基于特征的方法相比,基于像素的方法的主要优势在于,对于某些图像(在相似光照条件下拍摄且具有显著重叠的图像),其精度更高,这是因为我们使用了图像中所有可用的信息,从而能够实现亚像素精度。这对于某些应用(如多帧去噪或多帧超分辨率)尤其重要。

事实上,基于像素和基于特征的配准方法可以相互补充:一个应用程序可以首先使用特征获得粗略的配准,然后在图像的重叠区域上使用基于像素的方法来细化配准。所开发的代码允许这种使用场景。

该模块实现了从抽象类 cv::reg::Map 或 cv::reg::Mapper 派生的类。前者对两个参考帧之间的坐标变换进行建模,而后者封装了一种调用方法的方式,该方法计算两个图像之间的映射(Map)。尽管目标是实现基于像素的方法,但该模块可以扩展以支持其他能够计算图像间变换的方法(基于特征的方法、光流等)。

每个从 Map 派生的类实现了一种运动模型,如下所示:

复制代码
MapShift:对简单的平移进行建模。
MapAffine:对仿射变换进行建模。
MapProjec:对投影变换进行建模。

MapProject 也可以用于对仿射运动或平移进行建模,但它的一些操作成本更高,这就是定义另外两个类的原因。

从 Mapper 派生的类有:

复制代码
MapperGradShift:基于梯度的对齐,用于计算平移。它产生一个 MapShift(两个参数,对应于平移向量)。
MapperGradEuclid:基于梯度的对齐,用于欧几里得运动,即旋转和平移。它计算三个参数(角度和平移向量),尽管结果为了方便存储在 MapAffine 对象中。
MapperGradSimilar:基于梯度的对齐,用于计算相似性变换,即在欧几里得运动的基础上增加了缩放。它计算四个参数(两个用于反对称矩阵,两个用于平移向量),尽管结果为了更好的方便性存储在 MapAffine 对象中。
MapperGradAffine:基于梯度的对齐,用于仿射运动模型。参数数量为六个,结果存储在 MapAffine 对象中。
MapperGradProj:基于梯度的对齐,用于计算投影变换。参数数量为八个,结果存储在 MapProject 对象中。
MapperPyramid:它使用高斯金字塔实现分层运动估计。它的构造函数接受任何实现 Mapper 接口的其他对象作为参数,并且正是该 mapper 被 MapperPyramid 在金字塔的每个尺度上调用。

如果图像之间的运动不是非常小,使用这些类的正常方式是创建一个 MapperGrad* 对象并将其用作创建 MapperPyramid 的输入,然后调用 MapperPyramid 来执行计算。然而,如果图像之间的运动足够小,我们可以直接使用 MapperGrad* 类。另一种可能性是先使用基于特征的方法进行粗略配准,然后通过 MapperPyramid 或直接使用 MapperGrad* 对象进行细化。mappers 的 "calculate" 方法接受运动的初始估计作为输入。

在决定使用哪个 MapperGrad 时,我们必须考虑到,参数更多的 mappers 可以处理更复杂的运动,但涉及更多的计算,因此速度更慢。此外,如果我们对序列遵循的运动模型有信心,增加超出我们需要的参数数量会降低精度:最好使用我们能用的最少自由度数量。

在模块测试中有示例,展示了如何使用任何已实现的 mappers 来配准一对图像。

相关推荐
云和数据.ChenGuang2 小时前
trace 是RAG检索链路的**全链路追踪日志对象
人工智能·深度学习·算法·排序算法
鼓掌MVP2 小时前
决定全案的智能Agent
大数据·人工智能·机器学习
lank_M2 小时前
Word裁剪图片转HTML走样,该在渲染层修还是入口修
前端·图像处理·人工智能·计算机视觉·html·word
IT_陈寒2 小时前
深入理解Redis:核心原理与最佳实践
前端·人工智能·后端
来包番茄沙司2 小时前
【网盘资源分享】2026新版尚硅谷AI Agent智能体极速版|全套课程资料+面经
人工智能·学习
拉你进_教堂2 小时前
小龙虾技能之【Contactless Health Risk Screening Tool | 非接触式健康风险检测分析工具】简介
人工智能·目标检测·计算机视觉·多模态大模型·openclaw小龙虾技能
梦想的初衷~2 小时前
从通量数据到SCI论文——AI-R语言生态系统碳水热通量及其机制分析与论文实战
人工智能·机器学习·r语言·r 语言·fluxnet·涡度·生态系统碳通量
维智佳创winzsoft2 小时前
维智佳创受邀参加中望软件ZWORLD 2026,共塑CAD二次开发AI新智能
人工智能·科技·ai·业界资讯·cad二次开发·中望cad二次开发·cad-ai设计
飞猫的边缘AI2 小时前
马斯克的Starmind与太空边缘计算
人工智能·芯片·英伟达·边缘ai
梦想的颜色2 小时前
【AI速览】TTS 语音克隆 + 音色稳定 + 长文本断句 + 数字人驱动全解
人工智能·语音识别·indextts2