图像处理———图像的几何变换原理及实现

图片引用这篇博客 传送门,外加自己的理解

图像的几何变换有平移、旋转、尺度(放大缩小)、偏移、恒等变换等

一、几何变换的变换矩阵

图像处理———图像的几何变换原理及实现_第1张图片
学过坐标变换的应该知道这啥意思,将图像中点的坐标写成齐次坐标的形式,再乘以变换矩阵,就能得到变换后的点的齐次坐标。

具体的变换矩阵如下所示:
图像处理———图像的几何变换原理及实现_第2张图片
如果一下没理解呢,会矩阵乘法的话,就乘开试试,原图像的齐次坐标[v w 1]乘坐标变换矩阵T之后就能得到第三列那个表达式,也就是通过一个矩阵T,算出目标点的坐标。

二、坐标系变换的变换矩阵

图像处理———图像的几何变换原理及实现_第3张图片

  • 右图是opencv给图像建立坐标系的方式,左图是以图像自身中心为原点建立的坐标系。
  • 当对图像进行旋转(或偏移)变换时,图像以自身为中心建立坐标系,按照上一步的方法计算完旋转后的坐标时,旋转后的坐标仍是用以自身为中心的坐标表示的。
  • 但是这和opencv的坐标表示方法不同,因此就需要进行坐标系的变换。

因此总体的变换步骤就是:

  1. 将原图的图像坐标系转换为数学坐标系;
  2. 在数学坐标系下用第一步的旋转矩阵进行旋转计算;
  3. 将旋转后的图像的数学坐标转回图像坐标。

== 表达式待补充 ==

三、上述方法的改进(反向映射)

  • 上述所讲这种叫做前向映射,即根据原图用变换公式直接算出输出图像相应像素的空间位置。
  • 这容易产生有规律的空洞,因为可能会有多个像素坐标映射到输出图像的同一位置,也可能输出图像的某些位置完全没有相应的输入图像像素与它匹配,也就是没有被映射到。

因此就有了反向映射(Inverse Mapping)的方法:
扫描输出图像的位置(x,y),通过[v , w , 1]=[x, y, 1]* T^(-1)计算输入图像对应的位置 (v,w),通过插值方法决定输出图像该位置的灰度值。

关于插值的内容参看上一期教程。== 链接待补充 ==

四、代码实现(python)

== 图像待补充 ==
参看该链接

你可能感兴趣的:(图像处理学习,计算机视觉,opencv,python)