图像的仿射变换

本文介绍如何利用C++和OpenCV库进行图像的仿射变换,包括概念解释、相关API介绍以及代码示例。仿射变换保持了图像的平直性和平行性,涉及的关键函数有warpAffine()、getRotationMatrix2D()和getPerspectiveTransform()。
摘要由CSDN通过智能技术生成

使用C++、opencv进行图像的仿射变换

仿射变换(Affine Transformation或Affine Map),又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。它保持了二维图形的“平直性”(直线经过变换之后依然是直线)和“平行性”(二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。

更多仿射变换的原理可参考:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/imgtrans/warp_affine/warp_affine.html


相关API:

void warpAffine ( InputArray  src,OutputArray dst,InputArray M,Size  dsize, int  flags = INTER_LINEAR,int  borderMode = BORDER_CONSTANT,const Scalar & borderValue = Scalar() )

 warpAffine()函数的作用是按照下面的公式对图像进行变换:

第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。

第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,需和源图片有一样的尺寸和类型。

第三个参数,InputArray类型的M,2×3的变换矩阵。

第四个参数,Size类型的size,表示输出图像的尺寸

第五个参数,int类型的fags,插值方法的标识符。此参数有默认值INTER LⅠNEAR(线性插值),可选的插值方式如表7.1所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值