OpenCV:面向Python几何变换

本文详细介绍了OpenCV中图像处理的几何变换,包括缩放、翻转、仿射、透视和重映射等操作。通过使用cv2.resize()、cv2.flip()、cv2.warpAffine()、cv2.warpPerspective()和cv2.remap()等函数,可以高效地对图像进行各种变换。这些变换在图像处理和计算机视觉领域有着广泛应用。
摘要由CSDN通过智能技术生成

最近做实验用到了几何变换,因此系统的总结了一下几何变换

提高几何变换,我们就想到了在初高中做数学题目时候的场景,应用几何变换把困难的题目化简为通俗易懂的题目,从而得到解答。

在百度上查看了一下关于几何变换的定义:
在这里插入图片描述

在图像处理当中,几何变换是指将一幅图像映射到另外一幅图内的操作。
而OpenCV提供了多个与映射有关的函数,通过熟悉运用这些函数,可以高效的实现一副图像到另一幅图像的映射,从而高效的完成图像的操作。

图像的几何变换可以分为:缩放、翻转、仿射、透视、重映射

缩放

在OpenCV中,使用cv2.resize()实现

形式为:cv2.resize(src,desize[,fx[,fy[,interpolation]]])
src:表示要进行处理的图片
desize:表示输出图像的大小
fx,fy:分别表示水平和垂直方向缩放的比例
interpolation:表示插值方式(默认使用双线性插值)

翻转

在OpenCV中,使用cv2.flip()实现

形式为:cv2.flip(src,flipcode)
src:表示要进行处理的图片
flipcode:表示旋转类型

当flipcode为0时候,绕x轴旋转;当flipcode为正数时候,绕y轴旋转;当flipcode为负数时候,同时绕xy轴旋转。

仿射

在OpenCV中,使用cv2.warpAffine()实现

形式为:cv2.warpAffine(src,M,dsize[,flags[,borderMode[,borderValue]]])
src:表示要进行处理的图片
M:一个变换矩阵
desize:表示输出图像的大小
flags:表示插值方式
borderMode:表示边类型
borderValue:表示边界值

在使用的时候,可以将后面三个参数省略,利用M将原始图像转换为所需要的图像。
例如:cv2.warpAffine(src,M,dsize)

透视

在OpenCV中,利用cv2.warpPerspective()实现

形式为:cv2.warpPerspective(src,M,dsize[,flags[,borderMode[,borderValue]]])
src:表示要进行处理的图片
M:一个变换矩阵
desize:表示输出图像的大小
flags:表示插值方式
borderMode:表示边类型
borderValue:表示边界值

注意与仿射时候M代表的矩阵时不同的,这里代表的3*3的变换矩阵。

重映射

在OpenCV中,cv2.remap()提供了更方便的映射方式

形式为:cv2.remap(src,map1,map2,interpolation[,borderMode[,borderValue]])
src:表示要进行处理的图片
map1和map2:分别表示两种可能的值
interpolation:表示插值方式
borderMode:表示边类型
borderValue:表示边界值

希望可以对大家的学习有所帮助,如有遗漏或者错误请在评论区中指正!!!

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值