【学习OpenCV】仿射变换函数warpAffine、旋转

本文介绍了OpenCV中用于图像仿射变换和旋转的函数,包括getAffineTransform、getRotationMatrix2D和warpAffine。通过这些函数,可以实现图像的平移、旋转和缩放。文章详细解释了warpAffine函数的参数,并提供了图像旋转的示例代码。

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

理论

http://www.cnblogs.com/wangguchangqing/p/4045150.html

翻开任意一本图像处理的书,都会讲到图像的几何变换,这里面包括:仿射变换(affine transformation)、投影变换(projecttive transformation)。前者针对的是平面上的物体位姿变化,如水平/垂直方向位移、旋转、缩小/放大,常见的应用有ORC字符识别。后者针对的是三维空间中的位置变化,受限于物体依然是平面的,也称为二维投影变换,常见的应用有车牌识别。

图像变换:以上所有变换均可以通过矩阵描述,将输入图像与变换矩阵进行矩阵乘法得到变换后的图像坐标。显然,这种方式非常适合编程实现。


opencv仿射变换函数说明

opencv提供了,从变换矩阵计算,到图像变换,每个流程的一揽子解决方案。

以opencv 3.0为例,参考几何变换模块说明

1、getAffineTransform

[cpp]  view plain   copy
  1. Mat getAffineTransform(InputArray src, InputArray dst)  
该函数需要已知变换前与变换后的坐标,返回相应的变换矩阵,至于是何种变换无需事先知道。适用于目标检测场合,通过检测得到的特征点进行图像匹配。


2、getRotationMatrix2D

[cpp]  view plain   copy
  1. Mat getRotationMatrix2D(Point2f center, double angle, double scale)  
已知旋转中心坐标(坐标原点为图像左上端点)、旋转角度(单位为度°,顺时针为负,逆时针为正)、放缩比例,返回旋转/放缩矩阵。与getAffineTransform相比,无需知道变换后坐标,适用于一般情况下的图像变换。

3、warpAffine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值