文章目录
1. 基本原理
本章学习内容为全景图像拼接,需要我们创建全景图、拼接图像。即将两幅或多幅具有重叠区域的图像,通过特征匹配将具有相同的特征点的图像拼接在一起,将来自多个不同视角拍摄的图像变换到同一视角下,拼接成一张宽视野图像。
这里的特征点指代SIFT特征点,SIFT是具有很强稳健性的描述子,比起其他描述子,产生更少的错误匹配。
以下是图像拼接的基础流程:
- 针对某个场景拍摄多张/序列图像;
- 计算第二张图像与第一张图像之间的变换关系:
a. 提取特征点,生成描述符;
b. 特征匹配;- 将第二张图像叠加到第一张图像的坐标系中;
a. 图像映射;
b. 图像扭曲;- 变换后的融合/合成
- 在多图场景中,重复上述过程
1.1 图像拼接的几何原理
全景融合的 3D 几何解释:
- 图像被投影到共同的拼接平面上(同一坐标系);
- 在拼接平面上实现全景融合;
- 在拼接的应用中,其实可以简化理解为 2D图像的变换,叠加过程;
![]() |
![]() |
---|
1.2 2D图像变换原理
给定变换模型 x ′ = h ( x ) x'= h(x) x′=h(x) ,以及输入图像 f ( x ) f(x) f(x), 根据 f ( x ) f(x) f(x)计算变换后的图像 g ( x ’ ) = f ( h ( x ) ) g(x’) = f(h(x)) g(x’)=f(h(x))有两种方法,分别为前向映射和逆向映射。
前向映射
对于 f ( x ) f ( x ) f(x) 中的每个像素 x x x,根据变换模型计算相应的映射坐标 x ′ = h ( x ) x' = h( x ) x′=h(x) ,并将 x x x的像素值赋给 g ( x ′ ) g ( x') g(x′)。
当像素落在两个像素之间时:近邻插值
逆向映射
对于 g ( x ′ ) g ( x') g(x′)中的每个像素 x ′ x' x′,根据变换模型计算相应的映射坐标 x = h − 1 ( x ′ ) x = h^{−1} ( x') x=h−1(x′),并将x的像素值赋给 g ( x ′ ) g( x') g(x′)。
当像素落在两个像素之间时:线性插值/双线性插值:
介绍一下主要的插值方法:
- 最近邻插值;
- 线性插值;
- 双线性插值;
- 三线性插值;
图像映射流程
- 针对两张/多张图像提取特征;
- 特征匹配;
- 根据图像变换特点,选取合适的变换结构;
- 根据DLT等方法计算变换结构;
- 采用正向/逆向映射,利用插值方式实现图像映射变换;
1.3 直线拟合
给定若干二维空间中的点,求直线 y = a x + b y = ax + b y=ax