OpenCV 笔记(25):图像的仿射变换

本文介绍了OpenCV中的图像仿射变换,包括旋转、缩放、平移和错切。仿射变换通过2x3的变换矩阵实现,保持图像的平直性和平行性,使用齐次坐标系简化表示。文章详细讲解了不同变换的数学公式,并提供了OpenCV实现这些变换的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  几何变换

图像的几何变换是指将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置,其实质是改变像素的空间位置,估算新空间位置上的像素值。几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。

以下是常用的几种几何变换:

  • 旋转:将图像旋转指定角度。

  • 缩放:按缩放因子调整图像大小,使其变大或变小。

  • 平移:将图像从当前位置移动到新位置。

  • 错切:沿特定轴倾斜图像。

  • 仿射变换:一个更广泛的类别,包括单个变换中的缩放、旋转、错切和平移。

  • 透视变换:此变换模拟 3D 空间中的透视效果,允许进行更复杂的操作,例如校正由摄像机角度引起的扭曲。

几何变换通常使用数学函数和变换矩阵来实现。这些矩阵定义了原始图像中的每个像素如何映射到转换图像中的新位置。

2.  仿射变换

2.1 仿射变换

图像处理中的仿射变换是指对图像进行一次线性变换和平移,将其映射到另一个图像空间的过程。仿射变换可以保持图像的“平直性”,即直线经过仿射变换后依然为直线,平行线经过仿射变换后依然为平行线。

通常,使用 2x3 大小数组 M 来进行仿射变换。数组由两个矩阵 A、B 组成,其中矩阵 A(大小为2x2)用于矩阵乘法,矩阵 B(大小为2x1)用于向量加法。

原像素点坐标(x,y),经过仿射变换后的点的坐标是(u,v),则矩阵仿射变换基本算法原理:

其数学表达式如下:

其中:

  • 和 代表缩放系数,控制图像在水平和垂直方向上的缩放。

  • 和 代表错切系数,控制图像的水平和垂直错切。

  • 和 代表平移系数,控制图像在水平和垂直方向上的平移。

由于缩放和旋转是通过矩阵乘法来实现,平移是通过矩阵加法来实现的,将这几个操作都用一个矩阵实现所以构造出上面的 2x3 矩阵 M。

仿射变换是从二维坐标到二维坐标之间的线性变换,且为了保持二维图像的“平直性”和“平行性”。我们需要引入齐次坐标的概念,最终得到的齐次坐标矩阵表示形式为:

2.2 齐次坐标

在数学里,齐次坐标(homogeneous coordinates),或投影坐标(projective coordinates)是指一个用于投影几何里的坐标系统,如同用于欧氏几何里的笛卡儿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值