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()  # 释放所有窗体

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

相关文章
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
4天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
65 43
|
2天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
55 30
|
5天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
25 12
|
1月前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
55 10
|
2月前
|
算法 Unix 数据库
Python编程入门:从基础到实战
本篇文章将带你进入Python编程的奇妙世界。我们将从最基础的概念开始,逐步深入,最后通过一个实际的项目案例,让你真正体验到Python编程的乐趣和实用性。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你提供有价值的信息和知识。让我们一起探索Python的世界吧!
|
3月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
764 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
4月前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
63 4
|
4月前
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
|
5月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)