OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

本文是OpenCV学习笔记的第十五部分,主要讲解图像的仿射变换,包括warpAffine()函数用于图像变形,getRotationMatrix2D()用于计算旋转矩阵。仿射变换可以实现图像的旋转、平移和缩放,同时保持直线和平行性。文章通过实例介绍了这两个函数的使用方法。
摘要由CSDN通过智能技术生成

OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式。
仿射变换(Affine Transformation或 Affine Map),是指在几何中**一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。**它保持了二维图形的==“平直性”(即:直线经过变换之后依然是直线)和“平行性”==(即:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。
那么, 我们能够用仿射变换来表示如下三种常见的变换形式:

1)旋转,rotation (线性变换)
2)平移,translation(向量加)
3)缩放,scale(线性变换)
在这里插入图片描述

1、warpAffine()函数

void warpAffine(
InputArray src,						// 源图像
OutputArray dst, 					// 函数调用后的运算结果
InputArray M, 						// 2×3的变换矩阵
Size dsize, 						// 表示输出图像的尺寸
int flags=INTER_LINEAR, 			// 插值方法的标识符
intborderMode=BORDER_CONSTANT, 		// 边界像素模式
const Scalar& borderValue=Scalar()	// 在恒定的边界情况下取的值
)

2、getAffineTransform()函数

计算3个二维点对之间的仿射变换矩阵H(2行x3列),自由度为6.

Mat cv::getAffineTransform(	
const Point2f 	src[],			// 源图像中三角形顶点的坐标(3点)	
const Point2f 	dst[] 			// 目标图像中三角形顶点的坐标(3点)
)

在这里插入图片描述
其中
在这里插入图片描述

2、getRotationMatrix2D()函数


Mat getRotationMatrix2D(
Point2f center,						// 表示源图像的旋转中心
double angle, 						// 旋转角度。角度为正值表示向逆时针旋转(坐标原点是左上角)
double scale, 						// 缩放系数
)

此函数计算以下矩阵
在这里插入图片描述

1、示例一&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值