需要源码请点赞关注收藏后评论区留言私信~~~
几何变换是指改变图像的几何结构,例如大小、角度和形状等,让图像呈现出缩放、翻转、映射和透视效果。这些几何变换操作都涉及复杂、精密的计算,OpenCV将这些计算过程封装成非常灵活的方法,开发者只需修改一些参数,就能实现图像的变换效果
一、缩放
缩表示缩小,放表示放大,通过OpenCV提供的resize方法可以随意更改图像的大小比例 语法如下
dst=cv2.resize(src,dsize,fx,fy,interpolation)
参数说明如下
src 原始图像
dsize 输出图像的大小 格式为宽高
fx 可选参数 水平方向的缩放比例
fy 可选参数 垂直方向的缩放比例
interpolation 可选参数 缩放的插值方式
dst 缩值之后的图像
resize方法有两种使用方式,一种是通过dsize参数实现缩放,另一种是通过fx和fy参数实现缩放 下面分别介绍
dsize参数实现缩放
dsize参数的格式是一个元组,如果使用dsize参数,就可以不写fx和fy参数
下面将图像按照指定宽高进行缩放 原图 放大 缩小对比如下
代码如下
import cv2
img = cv2.imread("demo.png") # 读取图像
dst1 = cv2.resize(img, (100, 100)) # 按照宽100像素、高100像素的大小进行缩放
dst2 = cv2.resize(img, (400, 400)) # 按照宽400像素、高400像素的大小进行缩放
cv2.imshow("img", img) # 显示原图
cv2.imshow("dst1", dst1) # 显示缩放图像
cv2.imshow("dst2", dst2)
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体
fx和fy参数实现缩放
使用fx和fy参数控制缩放时,dsize参数值必须使用None,否则fx和fy失效,fx参数和fy参数可以使用浮点值,小于1的值表示缩小,大于1的值表示放大 计算公式为
新图像宽度,高度=round(fx/fy*原图像高度,宽度)
下面将图像按照指定比例进行缩放
二、翻转
水平方向称为X轴,垂直方向称为Y轴
OpenCV通过cv2.flip方法实现翻转效果 语法如下
dst=cv2.flip(src,flipcode)
flipcode为反转类型
0为沿X轴翻转
正数为沿Y轴翻转
负数为同时沿X轴 Y轴翻转
沿X轴翻转的效果
沿Y轴翻转的效果
下面同时实现三种翻转效果
代码如下
import cv2
img = cv2.imread("demo.png") # 读取图像
dst1 = cv2.flip(img, 0) # 沿X轴翻转
dst2 = cv2.flip(img, 1) # 沿Y轴翻转
dst3 = cv2.flip(img, -1) # 同时沿X轴、Y轴翻转
cv2.imshow("img", img) # 显示原图
cv2.imshow("dst1", dst1) # 显示翻转之后的图像
cv2.imshow("dst2", dst2)
cv2.imshow("dst3", dst3)
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体
** 创作不易 觉得有帮助请点赞关注收藏~~~**
版权归原作者 showswoller 所有, 如有侵权,请联系我们删除。