opencv系列-图像配准

  • 一、简介
  • 二、应用场景
  • 三、算法分类
  • 四、特征点
  • 4.1 Haris
  • SIFT
  • SURF
  • 五、特征匹配
  • 六、全局配准
  • 坐标旋转变换公式的推导
  • 围绕原点的旋转
  • 坐标系(逆时针)的旋转
  • 绕某一点进行旋转
  • 仿射变换
  • 透视变换与仿射变换
  • opencv函数使用
  • 什么是光流(optical flow)?
  • 光流法基本原理
  • 七、 局部配准



前言:配准方面的知识,在工作中多有用到,对于原理了解一些,但是知之不深,最近时间比较充裕,专门写一篇文章,加深对配准方面知识的学习。

一、简介

通俗定义:给定两幅图像P1,P2,图像配准算法的目标是找到一种变换T: 图像配准融合 python 图像配准 opencv_图像配准融合 python 图像配准融合 python 图像配准 opencv_图像配准融合 python_02,使得变换某一图后,两幅图像的相似程度达到最大。

二、应用场景

Panorama全景拼接;recognition识别;SLAM(同步定位与地图绘制);去噪;hdr算法

三、算法分类

Feature based; Optical Flow based;CNN based

四、特征点

特征检测。手动或者可能自动检测显著和独特的对象(闭合边界区域,边缘,轮廓,交线,角点等)。为了进一步处理,这些特征可以通过点来表示(重心,线尾,特征点),这些点称为控制点(CP)。
特征匹配。建立场景图像和参考图像特征之间的相关性。使用各种各样的特征描述符,相似性度量,连同特征的空间相关性。
转换模型估计。估计将感测图像和参考图像对齐的所谓映射函数的类型和参数。映射函数的参数通过特征相关性计算。
图像重采样和转换。使用映射函数转换感测图像。使用合适的插值技术计算非整数坐标的图像值。

4.1 Haris

图像配准融合 python 图像配准 opencv_特征点_03


window fuction:

图像配准融合 python 图像配准 opencv_映射函数_04


图像配准融合 python 图像配准 opencv_特征点_05

SIFT

SURF

五、特征匹配

Opencv特征寻找及匹配的步骤有哪些?

  1. 根据特征点定义寻找特征点
  2. 对特征点进行描述
  3. 将寻找到的关键点和现有特征点,利用描述符进行量化后,进行匹配。

六、全局配准

坐标旋转变换公式的推导

围绕原点的旋转

图像配准融合 python 图像配准 opencv_特征点_06


图像配准融合 python 图像配准 opencv_特征点_07

图像配准融合 python 图像配准 opencv_特征点_08

图像配准融合 python 图像配准 opencv_特征匹配_09

图像配准融合 python 图像配准 opencv_映射函数_10

将x,y带入s,y当中:

图像配准融合 python 图像配准 opencv_特征匹配_11

图像配准融合 python 图像配准 opencv_特征点_12

写成矩阵的形式:

图像配准融合 python 图像配准 opencv_特征点_13

坐标系(逆时针)的旋转

图像配准融合 python 图像配准 opencv_特征点_14


以P点坐标为例,在原始坐标系中坐标是(x,y),在新的坐标系中的坐标为(s,t)

图像配准融合 python 图像配准 opencv_特征匹配_15

图像配准融合 python 图像配准 opencv_特征匹配_16

写成矩阵的形式:

图像配准融合 python 图像配准 opencv_映射函数_17

绕某一点进行旋转

待补充

仿射变换

仿射变换(Affine Transformation or Affine Map),在几何上,是一个向量空间,经过线性变换和平移转换为另外一个向量空间的操作。仿射变换的特点,保持图像的平移性(直线仍然是直的)和平行性(平行线仍然平行,且直线点上的位置顺序不变)。
常见的三种变换操作:

  • 旋转(rotation)
    坐标系顺时针,内容逆时针
    图像配准融合 python 图像配准 opencv_特征匹配_18
  • 平移(translation)
    图像配准融合 python 图像配准 opencv_映射函数_19
  • 缩放(scale)
    图像配准融合 python 图像配准 opencv_映射函数_20
  • 错切(shear)
    x轴移动
    图像配准融合 python 图像配准 opencv_图像配准融合 python_21
    y轴移动
    图像配准融合 python 图像配准 opencv_映射函数_22
    x、y轴移动
    图像配准融合 python 图像配准 opencv_特征点_23

图像配准融合 python 图像配准 opencv_特征点_24


图像配准融合 python 图像配准 opencv_图像配准融合 python_25


图像配准融合 python 图像配准 opencv_映射函数_26

图像配准融合 python 图像配准 opencv_映射函数_27
图像配准融合 python 图像配准 opencv_映射函数_28
对于图片的每个位置进行转换:
图像配准融合 python 图像配准 opencv_特征点_29

透视变换与仿射变换

图像配准融合 python 图像配准 opencv_映射函数_30


图像配准融合 python 图像配准 opencv_特征匹配_31


图像配准融合 python 图像配准 opencv_特征匹配_32


图像配准融合 python 图像配准 opencv_映射函数_33

opencv函数使用

什么是光流(optical flow)?

所谓光流即瞬时速度,时间很小时,等同于目标点的位移。
光流的物理意义:光流是由目标物体的运动以及相机的运动,或者二者共同的运动所产生。研究光流场的目的是为了获得运动场。

光流法基本原理

七、 局部配准

-[8]surf特征提取算法