图像的仿射变换涉及到图像的形状位置角度的变化,是深度学习预处理中常用到的功能,仿射变换主要是对图像的缩放,旋转,翻转和平移等操作的组合。
仿射变换:一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移).
可以用仿射变换来表示:
- 旋转 (线性变换)
- 平移 (向量加)
- 缩放操作 (线性变换)
图像的仿射变换,如下图所示,图1中的点1, 2 和 3 与图二中三个点一一映射, 仍然形成三角形, 但形状已经大大改变,通过这样两组三点(感兴趣点)求出仿射变换, 接下来我们就能把仿射变换应用到图像中所有的点中,就完成了图像的仿射变换。
一张图好理解;
仿射图像R
=变换矩阵M
× 原始图像
通常,使用 2x3 大小数组 M 来进行仿射变换。数组由两个矩阵 A、B 组成,其中矩阵 A(大小为2x2)用于矩阵乘法,矩阵 B(大小为2x1)用于向量加法。
其中:
由于缩放和旋转是通过矩阵乘法来实现,平移是通过矩阵加法来实现的,将这几个操作都用一个矩阵实现所以构造出上面的 2x3 矩阵 M。
仿射变换是从二维坐标到二维坐标之间的线性变换,且为了保持二维图像的“平直性”和“平行性”。我们需要引入齐次坐标的概念,最终得到的齐次坐标矩阵表示形式为:
OpenCV学堂 • 来源:Java与Android技术栈 • 2024-03-19 11:11 • 981次阅读
1. 几何变换
图像的几何变换是指将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置,其实质是改变像素的空间位置,估算新空间位置上的像素值。几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。
以下是常用的几种几何变换:
旋转:将图像旋转指定角度。
缩放:按缩放因子调整图像大小,使其变大或变小。
平移:将图像从当前位置移动到新位置。
错切:沿特定轴倾斜图像。
仿射变换:一个更广泛的类别,包括单个变换中的缩放、旋转、错切和平移。
透视变换:此变换模拟 3D 空间中的透视效果,允许进行更复杂的操作,例如校正由摄像机角度引起的扭曲。
几何变换通常使用数学函数和变换矩阵来实现。这些矩阵定义了原始图像中的每个像素如何映射到转换图像中的新位置。
2. 仿射变换
2.1 仿射变换
图像处理中的仿射变换是指对图像进行一次线性变换和平移,将其映射到另一个图像空间的过程。仿射变换可以保持图像的“平直性”,即直线经过仿射变换后依然为直线,平行线经过仿射变换后依然为平行线。
通常,使用 2x3 大小数组 M 来进行仿射变换。数组由两个矩阵 A、B 组成,其中矩阵 A(大小为2x2)用于矩阵乘法,矩阵 B(大小为2x1)用于向量加法。
其中: