7.opencv图像对称翻折image-Flip(cv2.flip)

12 篇文章 0 订阅
8 篇文章 1 订阅

在这里插入图片描述

与图像旋转类似,OpenCV 也提供了在x 轴或y轴上翻转图像的方法。尽管翻转操作的使用频率较低,但它们仍然非常值得学习 - 并且出于您可能不会立即考虑的原因。

例如,让我们想象一下为一家小型初创公司工作,该公司想要构建一个机器学习分类器来检测图像中的人脸。我们需要一个示例人脸数据集,我们的算法可以用它来“学习”什么是人脸。但遗憾的是,该公司只为我们提供了 20 张人脸的小数据集,我们没有办法获取更多数据。

那么我们该怎么办?

我们应用翻转操作来扩充我们的数据集!

我们可以水平翻转每个人脸图像(因为人脸仍然是人脸,无论是否镜像)并将这些镜像版本用作额外的训练数据。

虽然这个例子听起来很愚蠢和做作,但事实并非如此。强大的、需要大量数据的深度学习算法在训练期间特意使用翻转来生成额外的数据(通过一种称为数据增强的技术)。

一、什么是图像翻转?

我们可以围绕x轴、y轴或什至两者翻转图像。

在开始代码之前查看图像翻转的输出可以更好地解释翻转图像。查看图 1以查看水平翻转的图像:图1
注意左边是原始图像,右边是水平镜像。

我们可以垂直做同样的事情

在这里插入图片描述
我们也可以结合水平和垂直翻转:

在这里插入图片描述

二、项目结构和代码讲解

1.项目结构

通过博文末尾或此处的的 代码下载
下载本博文对应的代码项目,以下是下载解压后的项目结构:
在这里插入图片描述
我们的 opencv_flip.py 脚本将加载 opencv_logo.png 来自磁盘的图像,然后演示如何使用 cv2.flip 翻转图像的功能

2.代码讲解

在这里插入图片描述

第 2 行和第 3 行导入我们需要的 Python 包,而第 6-9 行解析我们的命令行参数。

我们在这里只需要一个参数, - 图像,这是我们要翻转的输入图像的路径。我们将此值默认为opencv_logo.png 我们项目目录中的图像。

现在让我们水平翻转图像:

在这里插入图片描述
我们从第12行和第13行开始,从磁盘加载输入图像并将其显示在屏幕上。

水平翻转图像是通过调用 cv2.flip第 17 行的函数,其输出如图 5 所示。

这 cv2.flip 方法需要两个参数: 图像 我们要翻转图像,并使用特定的代码/标记来确定我们如何翻转图像。

使用翻转代码值 1表示我们围绕y轴水平翻转图像。

指定翻转代码 0表示我们要围绕x轴垂直翻转图像:在这里插入图片描述
下图显示了垂直翻转图像的输出:在这里插入图片描述
最后,使用负翻转代码围绕两个轴翻转图像。

在这里插入图片描述

如下图所示

在这里插入图片描述
运行代码:在这里插入图片描述

三、代码下载

点击可下载对应的代码包
代码下载.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·菜鸟看世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值