英文版原文链接
先修教程:Remapping(重映射)
下一教程:Histogram Equalization(直方图均衡化)
文章目录
结果
- 在编译代码之后,我们可以将图像的路径作为参数提供给它。例如,像这样的图片:

- 应用第一个仿射变换后得到:

- 最后,在应用一个负的旋转(记住负的意思是顺时针)和一个比例因子之后,我们得到:

目标
此教程我们将学会:
- 使用OpenCV函数 cv::warpAffine 实现简单的重新映射例程。
- 使用OpenCV函数 cv::getRotationMatrix2D 获得一个 2×3 旋转矩阵
原理
什么是仿射变换?
1、以矩阵乘法(线性变换)和向量加法(平移变换)的形式表示的一种变换。
2、由上可知,我们可以用仿射变换来表示:
- a、旋转(线性变换)
- b、平移(向量加法)
- c、尺度变化(线性变换)
可以看到,在本质上,仿射变换表示两个图像之间的关系。
3、表示仿射变换的常用方法是使用一个2 × 3的矩阵。
A = [ a 00 a 01 a 10 a 11 ] 2 × 2 B = [ b 00 b 10 ] 2 × 1 A = \begin{bmatrix} a_{00} & a_{01} \\ a_{10} & a_{11} \end{bmatrix}_{2 \times 2} B = \begin{bmatrix} b_{00} \\ b_{10} \end{bmatrix}_{2 \times 1} A=[a00a10a01a11]2×2B=[b00b10]2×1
M = [ A B ] = [ a 00 a 01 b 00 a 10 a 11
本教程介绍了如何使用OpenCV的cv::warpAffine和cv::getRotationMatrix2D函数实现仿射变换和旋转,包括从三个点获取仿射变换矩阵并应用到图像上。
最低0.47元/天 解锁文章
468

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



