【学习OpenCV4】仿射变换与透视变换总结
来源:http://www.tudoupe.com时间:2022-02-24
本文分享内容来自图书《学习OpenCV 4:基于Python的算法实战》,该书内容如下:
欢迎关注图书《深度学习计算机视觉实战》与《学习OpenCV4:基于Python的算法实战》。

案例50:仿射变换
仿射变换是实现图像旋转,平移和缩放的常见操作,仿射变换后的图像具有平行性与平直性,即能够很好的保持原有图像中的直线关系与平行关系。OpenCV中提供了仿射变换操作的函数warpAffine,函数定义如下:
参数说明如下:
src,输入图像;
M,2x3的变换矩阵;
dsize,输出图像尺寸;
dst,输出图像(返回值);
flags,插值方式,由InterpolationFlags定义(见4.3节);
borderMode,边界模式,由BorderTypes定义(见3.4.5节);
borderValue,当边界模式为BORDER_CONSTANT时的边界值。
仿射变换需要通过函数getRotationMatrix2D生成变换矩阵,该函数的定义如下:
参数说明如下:
center,输入图像的旋转的中心;
angle,旋转角度,正数值为逆时针旋转;
scale,缩放系数;
retval,生成的旋转矩阵(返回值)。
如果设置旋转角度angle为0,缩放系数为0.6,则可以实现图像的缩放,案例代码如下:
缩放的结果如图5.8所示。
图5.8
如果设置旋转角度angle为45,即进行逆时针45度旋转,缩放系数为0.6,则可以实现图像的旋转和缩放,变换矩阵生成的代码如下:
旋转缩放的结果如图5.9所示。
图5.9
5.3 案例51:透视变换
透视变换是在二维平面获得接近真实三维物体的视觉效果一种算法,OpenCV提供了透视变换的函数warpPerspective,该函数定义如下:
函数对应的参数含义说明:
src,输入图像;
M,3×3的变换矩阵;
dsize,输出图像尺寸;
dst,输出图像(返回值);
flags,插值方式,由InterpolationFlags定义;
borderMode,边界模式,由BorderTypes定义(见3.4.5节);
borderValue,当边界模式为BORDER_CONSTANT时的边界值。
插值方式InterpolationFlags的定义如下:
3×3的变换矩阵可以通过函数getPerspectiveTransform获取,函数定义如下:
函数参数说明如下:
src,输入图像中四边形顶点的坐标;
dst,输出图像中相应四边形顶点的坐标;
solveMethod,矩阵分解类型;
retval,生成的透视变换矩阵(返回值);
使用warpPerspective函数进行透视变换的案例代码如下:
透视变换的结果如图5.10所示。
图5.10
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
 - 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
 - 2023-05-06 win pe修复bcdboot(pe修复系统)
 - 2023-05-06 win7更新失败 pe(win7更新失败还原更
 - 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
 - 2023-05-06 u盘pe 发热(u盘发热烫手)
 - 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
 - 2023-05-06 pe盘 ntfs(u盘ntfs格式)
 - 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
 - 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
 
| 
 | 
    
 | 
    
| 
 | 
    
 | 
    
| 
 | 
    
 | 
    
| 
 | 
    
 | 
    
| 
 | 
    
 | 
    
