文章目录
- 📚 学习路线图
- 本文内容一览(快速理解)
- 一、图像变换是什么(Image Transformation):理解两种变换类型
- 二、基本几何变换(2D Geometric Transformations):平移、旋转、缩放的基础操作
- 三、线性变换(Common linear transformations / 2x2 Matrices):用矩阵统一表示变换
- 四、齐次坐标(Homogeneous coordinates):统一表示所有变换的数学工具
- 五、变换的层次(Affine transformations / Projective Transformations):从仿射到投影的递进关系
- 📝 本章总结
📌 适合对象:计算机视觉初学者、图像处理入门者
⏱️ 预计阅读时间:40-50分钟
🎯 学习目标:理解图像变换的基本概念、掌握常见的几何变换、了解变换的层次关系
📚 学习路线图
本文内容一览(快速理解)
-
图像变换的两种类型:图像滤波改变像素值,图像变形改变像素位置
-
基本几何变换:平移、旋转、缩放是图像变换的基础操作
-
线性变换:可以用2×2矩阵表示,包括缩放、旋转、剪切、镜像
-
齐次坐标:通过添加一个坐标维度,可以统一表示包括平移在内的所有变换
-
变换层次:线性变换 → 仿射变换 → 投影变换,层次递进,功能越来越强大
一、图像变换是什么(Image Transformation):理解两种变换类型
这一章要建立的基础:理解图像变换的基本概念,区分两种不同类型的图像变换。
核心问题:当我们说"变换图像"时,到底指的是什么?有哪些不同的变换方式?
[!NOTE]
📝 关键点总结:图像变换分为两种类型:图像滤波(改变像素值范围)和图像变形(改变像素位置定义域)。几何变换属于图像变形,改变的是像素的空间位置。
1.1 图像变换的两种类型(Image Filtering vs Image Warping):滤波改变像素值,变形改变像素位置
概念的本质:
图像变换可以分为两种基本类型:
-
图像滤波(Image Filtering):改变图像的范围(range)
- 改变像素的值(亮度、颜色)
- 公式: g ( x ) = h ( f ( x ) ) g(x) = h(f(x)) g(x)=h(f(x))
- 例如:亮度调整、颜色增强、模糊处理
-
图像变形(Image Warping):改变图像的定义域(domain)
- 改变像素的位置(坐标)
- 公式: g ( x ) = f ( h ( x ) ) g(x) = f(h(x)) g(x)=f(h(x))
- 例如:旋转、缩放、平移
图解说明:
💡 说明:图像滤波改变的是"像素值是什么",图像变形改变的是"像素在哪里"
类比理解:
- 图像滤波:就像给照片调色或加滤镜,照片中物体的位置不变,但颜色、亮度改变了
- 图像变形:就像把照片旋转或拉伸,照片中物体的位置改变了,但颜色、亮度保持不变
实际例子:
图像滤波示例:
- 亮度调整:让整张照片变亮或变暗
- 模糊处理:让照片变得柔和
- 锐化处理:让照片边缘更清晰
图像变形示例:
- 旋转:把照片顺时针旋转90度
- 缩放:把照片放大2倍
- 平移:把照片向右移动100像素
二、基本几何变换(2D Geometric Transformations):平移、旋转、缩放的基础操作
前面我们知道了:图像变形是改变像素位置的变换,属于几何变换。
但遇到了问题:有哪些基本的几何变换?它们是如何工作的?
这一章要解决:理解三种最基本的几何变换:平移、旋转、缩放。
答案:平移、旋转、缩放是图像几何变换的基础,可以组合使用实现复杂的变换效果。
[!NOTE]
📝 关键点总结:平移、旋转、缩放是三种最基本的几何变换。平移改变位置,旋转改变方向,缩放改变大小。这些变换可以组合使用。
2.1 什么是几何变换(Parametric (global) warping):坐标变换机器
概念的本质:
几何变换可以看作是一个坐标变换机器(coordinate-changing machine):
- 输入:原图像中的点 p = ( x , y ) p = (x, y) p=(x,y)
- 输出:变换后图像中的点 p ′ = ( x ′ , y ′ ) p' = (x', y') p′=(x′,y′)
- 变换函数: p ′ = T ( p ) p' = T(p) p′=T(p)
参数化变形(Parametric Warping):
参数化变形是指:
- 全局性:变换 T T T 对所有点都相同
- 参数少:可以用少数几个参数描述整个变换
图解说明:
💡 说明:参数化变形是全局的,同一个变换函数对所有点都适用
类比理解:就像用模具压印——同一个模具(变换函数)对所有材料(图像中的点)都产生相同的变形效果。
2.2 平移(Translation):改变位置而不改变形状和大小
概念的本质:
平移是将图像中的所有点沿着某个方向移动固定的距离。
平移的特点:
- 只改变位置,不改变形状、大小、方向
- 可以用向量 ( t x , t y ) (t_x, t_y) (tx,ty) 表示平移量
实际例子:
向右平移100像素,向上平移50像素:
- 原位置:(100, 100)
- 新位置:(200, 150)
- 平移向量:(100, 50)
2.3 旋转(Rotation):改变方向而不改变形状和大小
概念的本质:
旋转是将图像围绕某个点(通常是原点)旋转一定的角度。
旋转的特点:
- 改变方向,不改变形状、大小
- 可以用角度 θ \theta θ 表示旋转量
- 逆时针旋转为正方向
图解说明:
实际例子:
顺时针旋转90度:
- 原方向:水平向右 →
- 新方向:垂直向下 ↓
- 旋转角度:-90°(或270°)
2.4 缩放(Uniform scaling / Non-uniform scaling):改变大小,均匀或非均匀
概念的本质:
缩放是将图像在某个方向上放大或缩小。
缩放的类型:
- 均匀缩放:x和y方向缩放比例相同
- 非均匀缩放:x和y方向缩放比例不同(改变宽高比)
缩放的特点:
- 改变大小,不改变形状(均匀缩放)或改变形状(非均匀缩放)
- 可以用缩放因子 s s s 表示
图解说明:
实际例子:
放大2倍(均匀缩放):
- 原大小:100×100像素
- 新大小:200×200像素
- 缩放因子:s = 2
x方向放大2倍,y方向不变(非均匀缩放):
- 原大小:100×100像素
- 新大小:200×100像素
- 缩放因子:sx = 2, sy = 1
2.5 相似变换(Similarity Transformation):平移、旋转、均匀缩放的组合
概念的本质:
相似变换是平移、旋转、均匀缩放的组合。
相似变换的特点:
- 保持形状不变(相似)
- 可以改变位置、方向、大小
- 保持角度不变
实际应用:
图像配准:
- 找到两幅图像之间的相似变换
- 可以将一幅图像对齐到另一幅图像
- 用于图像拼接、目标跟踪等
三、线性变换(Common linear transformations / 2x2 Matrices):用矩阵统一表示变换
前面我们知道了:平移、旋转、缩放是基本的几何变换。
但遇到了问题:如何用数学方法统一表示这些变换?能否用矩阵表示?
这一章要解决:理解线性变换的矩阵表示方法。
答案:缩放、旋转、剪切、镜像可以用2×2矩阵表示,但平移不能直接用2×2矩阵表示,需要齐次坐标。
[!NOTE]
📝 关键点总结:线性变换可以用2×2矩阵表示,包括缩放、旋转、剪切、镜像。线性变换保持原点不变,保持直线和平行关系。平移不是线性变换,需要齐次坐标才能统一表示。
3.1 线性变换的矩阵表示(All 2D Linear Transformations):用2×2矩阵表示缩放、旋转、剪切
概念的本质:
线性变换是指可以用矩阵乘法表示的变换:
p
′
=
M
⋅
p
p' = M \cdot p
p′=M⋅p
其中 M M M 是2×2矩阵, p = ( x , y ) p = (x, y) p=(x,y) 是原坐标, p ′ = ( x ′ , y ′ ) p' = (x', y') p′=(x′,y′) 是新坐标。
常见的线性变换:
- 均匀缩放:用矩阵 [ s 0 0 s ] \begin{bmatrix} s & 0 \\ 0 & s \end{bmatrix} [s00s] 表示
- 非均匀缩放:用矩阵 [ s x 0 0 s y ] \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} [sx00sy] 表示
- 旋转:用矩阵 [ cos θ − sin θ sin θ cos θ ] \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} [cosθsinθ−sinθcosθ] 表示
图解说明:
线性变换的性质:
- 原点映射到原点: ( 0 , 0 ) → ( 0 , 0 ) (0, 0) \rightarrow (0, 0) (0,0)→(0,0)
- 直线映射到直线
- 平行线保持平行
- 比例关系保持不变
3.2 平移不是线性变换(Translation is not a linear operation):平移不能用2×2矩阵表示
概念的本质:
平移的公式是:
x
′
=
x
+
t
x
x' = x + t_x
x′=x+tx
y
′
=
y
+
t
y
y' = y + t_y
y′=y+ty
这不能写成 p ′ = M ⋅ p p' = M \cdot p p′=M⋅p 的形式,因为平移会改变原点位置。
图解说明:
💡 问题:平移不是线性变换,不能用2×2矩阵表示,这引出了齐次坐标的必要性
解决方案:需要使用齐次坐标来统一表示包括平移在内的所有变换。
四、齐次坐标(Homogeneous coordinates):统一表示所有变换的数学工具
前面我们知道了:线性变换可以用2×2矩阵表示,但平移不能。
但遇到了问题:能否找到一种方法,统一表示包括平移在内的所有变换?
这一章要解决:理解齐次坐标的概念和作用。
答案:齐次坐标通过添加一个坐标维度,可以用3×3矩阵统一表示包括平移在内的所有变换。
[!NOTE]
📝 关键点总结:齐次坐标通过添加一个坐标维度(w),可以用3×3矩阵统一表示平移、旋转、缩放等所有变换。齐次坐标是计算机图形学和计算机视觉的基础工具。
4.1 齐次坐标的概念(Homogeneous coordinates):通过添加坐标维度统一表示变换
概念的本质:
齐次坐标是在原有坐标 ( x , y ) (x, y) (x,y) 的基础上,添加一个坐标维度 w w w,得到 ( x , y , w ) (x, y, w) (x,y,w)。
坐标转换:
- 从普通坐标到齐次坐标: ( x , y ) → ( x , y , 1 ) (x, y) \rightarrow (x, y, 1) (x,y)→(x,y,1)
- 从齐次坐标到普通坐标: ( x , y , w ) → ( x / w , y / w ) (x, y, w) \rightarrow (x/w, y/w) (x,y,w)→(x/w,y/w)(当 w ≠ 0 w \neq 0 w=0)
图解说明:
💡 说明:齐次坐标是一个技巧(trick),通过添加一个维度来统一表示所有变换
类比理解:就像给二维地图添加一个高度维度,变成三维地图,可以更方便地表示某些操作。
4.2 用齐次坐标表示平移(Translation Solution):用3×3矩阵表示平移
概念的本质:
使用齐次坐标,平移可以用3×3矩阵表示:
[ x ′ y ′ 1 ] = [ 1 0 t x 0 1 t y 0 0 1 ] [ x y 1 ] \begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} x′y′1 = 100010txty1 xy1
优势:
- 统一了所有变换的表示方法
- 可以方便地组合多个变换
- 矩阵乘法可以表示变换的组合
4.3 用齐次坐标表示旋转和缩放(Rotation and Scaling in Homogeneous Coordinates):统一用3×3矩阵表示
概念的本质:
旋转也可以用3×3矩阵表示,形式为:
[
cos
θ
−
sin
θ
0
sin
θ
cos
θ
0
0
0
1
]
\begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}
cosθsinθ0−sinθcosθ0001
缩放的齐次坐标表示:
缩放也可以用3×3矩阵表示,形式为:
[
s
x
0
0
0
s
y
0
0
0
1
]
\begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix}
sx000sy0001
组合变换:
多个变换可以通过矩阵乘法组合:
M
组合
=
M
3
⋅
M
2
⋅
M
1
M_{组合} = M_3 \cdot M_2 \cdot M_1
M组合=M3⋅M2⋅M1
五、变换的层次(Affine transformations / Projective Transformations):从仿射到投影的递进关系
前面我们知道了:齐次坐标可以统一表示平移、旋转、缩放等变换。
但遇到了问题:还有哪些更复杂的变换?它们之间有什么关系?
这一章要解决:理解仿射变换和投影变换,以及变换的层次关系。
答案:变换有层次关系:线性变换 → 仿射变换 → 投影变换,功能越来越强大,但保持的性质越来越少。
[!NOTE]
📝 关键点总结:变换分为三个层次:线性变换(保持原点)、仿射变换(保持平行线)、投影变换(只保持直线)。投影变换最强大,可以表示透视效果。
5.1 仿射变换(Affine Transformation / Basic affine transformations):线性变换和平移的组合
概念的本质:
仿射变换是线性变换和平移的组合,可以用以下形式的3×3矩阵表示:
[ a b t x c d t y 0 0 1 ] \begin{bmatrix} a & b & t_x \\ c & d & t_y \\ 0 & 0 & 1 \end{bmatrix} ac0bd0txty1
仿射变换的性质:
- 原点不一定映射到原点
- 直线映射到直线
- 平行线保持平行(重要性质)
- 比例关系保持不变
基本仿射变换:
- 平移
- 2D平面内旋转
- 剪切(Shear)
- 缩放
图解说明:
实际应用:
图像校正:
- 校正扫描文档的倾斜
- 校正相机拍摄的角度
- 保持平行线关系
5.2 投影变换(Projective Transformation / Homographies / Planar Perspective Maps):最一般的平面变换
概念的本质:
投影变换(也称为单应性,Homography)是最一般的平面变换,可以用以下形式的3×3矩阵表示:
[ a b c d e f g h i ] \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix} adgbehcfi
其中最后一行不一定是 [ 0 , 0 , 1 ] [0, 0, 1] [0,0,1]。
投影变换的性质:
- 原点不一定映射到原点
- 直线映射到直线
- 平行线不一定保持平行(可能相交)
- 比例关系不保持
图解说明:
实际应用:
透视校正:
- 校正透视畸变(如拍摄建筑物时的透视效果)
- 图像拼接
- 虚拟现实中的纹理映射
5.3 变换的层次关系(These transformations are a nested set of groups):嵌套的变换集合
概念的本质:
变换是一个嵌套的集合(nested set of groups):
线性变换
└─ 仿射变换(线性变换 + 平移)
└─ 投影变换(最一般)
图解说明:
性质对比:
| 变换类型 | 保持原点 | 保持平行线 | 保持比例 | 矩阵形式 |
|---|---|---|---|---|
| 线性变换 | ✅ | ✅ | ✅ | 2×2或3×3(最后行[0,0,1]) |
| 仿射变换 | ❌ | ✅ | ✅ | 3×3(最后行[0,0,1]) |
| 投影变换 | ❌ | ❌ | ❌ | 3×3(任意) |
实际应用选择:
选择变换类型的原则:
- 只需要旋转、缩放 → 线性变换
- 需要平移 → 仿射变换
- 需要透视效果 → 投影变换
📝 本章总结
核心要点回顾:
-
图像变换的两种类型:图像滤波改变像素值,图像变形改变像素位置
-
基本几何变换:平移、旋转、缩放是图像变换的基础,可以组合使用
-
线性变换:可以用2×2矩阵表示,包括缩放、旋转、剪切、镜像
-
齐次坐标:通过添加坐标维度,可以用3×3矩阵统一表示包括平移在内的所有变换
-
变换层次:线性变换 → 仿射变换 → 投影变换,功能越来越强大,但保持的性质越来越少
知识地图:
关键决策点:
- 需要改变像素值 → 图像滤波
- 需要改变像素位置 → 图像变形(几何变换)
- 只需要旋转、缩放 → 线性变换
- 需要平移 → 仿射变换
- 需要透视效果 → 投影变换
实际应用场景:
- 图像配准:找到两幅图像之间的变换关系
- 图像校正:校正倾斜、透视畸变
- 图像拼接:将多幅图像拼接成全景图
- 目标跟踪:跟踪目标的几何变换
- 虚拟现实:纹理映射和场景变换
1000

被折叠的 条评论
为什么被折叠?



