几何变换之翻转---OpenCV-Python开发指南(11)

简介: 几何变换之翻转---OpenCV-Python开发指南(11)

前言


经过前文的介绍,我们已经掌握了基础的缩放功能。本篇博文将带领大家一起学习OpenCV中另一个几何变换,也就是翻转。


翻转


在OpenCV中,它给我们提供cv2.flip()函数来实现翻转,该函数即可以实现水平方向翻转,也可以实现垂直方向翻转,当然也可以两个方向同时翻转,它的定义如下:

def flip(src, flipCode, dst=None): 

src:原始图像


dst=代表和原始图像具有同样大小,类型的目标图像。


flipCode:代表旋转类型


旋转类型有3个,如下表所示:

参数值 说明 含义
0 只能是0 X轴翻转
正数 可以是任意正数 绕Y轴翻转
负数 可以是任意负数 绕XY轴翻转


实现翻转


既然我们已经了解了函数的具体定义,已经每个参数的作用,下面我们通过一个例子来实现所有的翻转效果。


具体代码如下所示:

import cv2
img = cv2.imread("4.jpg")
img_x = cv2.flip(img, 0)
img_y = cv2.flip(img, 1)
img_xy = cv2.flip(img, -1)
cv2.imshow("img", img)
cv2.imshow("x", img_x)
cv2.imshow("y", img_y)
cv2.imshow("xy", img_xy)
cv2.waitKey()
cv2.destroyAllWindows()


运行之后,效果如下所示:


需要注意的是,本篇所有提到的内容都是翻转,翻转意味着是90度,不是随意旋转,不要弄混淆了旋转与翻转的区别。

相关文章
|
6月前
|
Python
26: 翻转数的和(python)
26: 翻转数的和(python)
|
6月前
|
数据采集 存储 XML
深入浅出:基于Python的网络数据爬虫开发指南
【2月更文挑战第23天】 在数字时代,数据已成为新的石油。企业和个人都寻求通过各种手段获取互联网上的宝贵信息。本文将深入探讨网络爬虫的构建与优化,一种自动化工具,用于从网页上抓取并提取大量数据。我们将重点介绍Python语言中的相关库和技术,以及如何高效、合法地收集网络数据。文章不仅为初学者提供入门指导,也为有经验的开发者提供进阶技巧,确保读者能够在遵守网络伦理和法规的前提下,充分利用网络数据资源。
|
6月前
|
程序员 数据安全/隐私保护 Python
Python:翻转字符串
Python:翻转字符串
|
3月前
|
Python
【Leetcode刷题Python】25.K 个一组翻转链表
解决LeetCode "K 个一组翻转链表" 问题的三种方法:使用栈、尾插法和虚拟节点顺序法,并提供了每种方法的Python实现代码。
30 0
|
3月前
|
机器学习/深度学习 XML 搜索推荐
图像自动化保存工具:Python脚本开发指南
图像自动化保存工具:Python脚本开发指南
|
6月前
|
C++ Python Java
Java每日一练(20230501) 路径交叉、环形链表、被围绕的区域
Java每日一练(20230501) 路径交叉、环形链表、被围绕的区域
58 0
Java每日一练(20230501) 路径交叉、环形链表、被围绕的区域
|
5月前
|
存储 机器学习/深度学习 算法
python 五种算法转置后翻转、层次旋转、递归分块、一次性旋转、环状替换 实现旋转图像【力扣题48】
python 五种算法转置后翻转、层次旋转、递归分块、一次性旋转、环状替换 实现旋转图像【力扣题48】
|
5月前
|
算法 Java C语言
【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
30 1
|
5月前
|
Python
python之列表添加、修改、删除、插入、翻转、排序、复制排序
python之列表添加、修改、删除、插入、翻转、排序、复制排序
|
5月前
|
算法 数据挖掘 Python
LeetCode题目25 hard:K个一组翻转链表 【分治策略 Python】
LeetCode题目25 hard:K个一组翻转链表 【分治策略 Python】