OpenCV中图像的缩放与旋转讲解及实战演示(附Python源码)

简介: OpenCV中图像的缩放与旋转讲解及实战演示(附Python源码)

需要源码请点赞关注收藏后评论区留言私信~~~

几何变换是指改变图像的几何结构,例如大小、角度和形状等,让图像呈现出缩放、翻转、映射和透视效果。这些几何变换操作都涉及复杂、精密的计算,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()  # 释放所有窗体

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
3天前
|
开发工具 Python
2024年Python最全使用Python求解方程_python解方程,2024年最新面试高分实战
2024年Python最全使用Python求解方程_python解方程,2024年最新面试高分实战
2024年Python最全使用Python求解方程_python解方程,2024年最新面试高分实战
|
1天前
|
机器学习/深度学习 算法 数据挖掘
4小时学完!15年技术大牛用247个实战案例剖析的Python教程
今天给小伙伴们分享一份15年技术大牛用247个实战案例剖析的Python教程,这份教程全程彩图讲解,告别枯燥!60秒学会⼀个⼩例⼦,带你系统学习Python,从⼊门到⼤师。 涵盖了Python基础、Python字符串和正则、Python⽂件和⽇期、Python三⼤利器、Python绘图、Python之坑、Python第三⽅包、机器学习和深度学必知算法、Python实战、Pandas数据分析案例实战十大篇幅的精品案例教程
|
3天前
|
数据采集 Java 数据挖掘
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
|
3天前
|
数据采集 数据挖掘 计算机视觉
最全OpenCV-Python实战(3)——OpenCV中绘制图形与文本,面试官必问问题及答案
最全OpenCV-Python实战(3)——OpenCV中绘制图形与文本,面试官必问问题及答案
|
3天前
|
Python
2024年最全用Python和PIL美化图像:文本覆盖技术实战,Python高级面试题pdf
2024年最全用Python和PIL美化图像:文本覆盖技术实战,Python高级面试题pdf
|
6天前
|
算法 计算机视觉
OpenCV高斯差分技术实现图像边缘检测
OpenCV高斯差分技术实现图像边缘检测
|
8天前
|
计算机视觉
OpenCV图像运动模糊
OpenCV图像运动模糊
11 0
|
8天前
|
计算机视觉
OpenCV图像阈值
OpenCV图像阈值
5 0
|
8天前
|
计算机视觉
OpenCV图像混合
OpenCV图像混合
10 0
|
8天前
|
计算机视觉 Python
OpenCV为图像扩边(填充)
OpenCV为图像扩边(填充)
10 0