【OpenCV-Python】:图像批量翻转

本文介绍了在深度学习中如何利用Keras的ImageDataGenerator进行数据增强,包括各种参数的含义和用法。同时,通过实例展示了如何使用OpenCV的cv2.flip函数对图像进行翻转,分别实现了沿x轴、y轴和同时沿x、y轴的翻转操作。了解这些方法有助于扩大有限的数据集,提升模型的泛化能力。
摘要由CSDN通过智能技术生成

✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法

在做深度学习工作时,有时数据集数量不够,势必要进行数据增强,一些框架如tensorflow、keras、pytorch也提供了相应的API用于数据增强。

keras中的tf.keras.preprocessing.image.ImageDataGenerator使用实时数据增强生成批量张量图像数据。这里给出API整体:

tf.keras.preprocessing.image.ImageDataGenerator(
    featurewise_center=False,
    samplewise_center=False,
    featurewise_std_normalization=False,
    samplewise_std_normalization=False,
    zca_whitening=False,
    zca_epsilon=1e-06,
    rotation_range=0,
    width_shift_range=0.0,
    height_shift_range=0.0,
    brightness_range=None,
    shear_range=0.0,
    zoom_range=0.0,
    channel_shift_range=0.0,
    fill_mode="nearest",
    cval=0.0,
    horizontal_flip=False,
    vertical_flip=False,
    rescale=None,
    preprocessing_function=None,
    data_format=None,
    validation_split=0.0,
    dtype=None,
)

具体使用方法,请参考Keras官网 图像数据预处理

除了使用上面API外,我们也可以使用OpenCV中的函数cv2.flip进行处理。

语法结构:dst = cv2.flip(src, flipcode),其中src表示要处理的图像,flipCode表示旋转类型。

flipcode参数意义如下表:

参数值说明意义
0只能是0绕x轴翻转
正数1,2,3 等任意整数绕y轴翻转
负数-1,-2,-3 等任意负数绕x、y轴同时翻转

代码实现:

import cv2
import os
import numpy as np

def read_path(file_pathname):
    for filename in os.listdir(file_pathname):
        filename = filename
        print(filename)
        img = cv2.imread(file_pathname+'/'+filename)
        imageR1p0 = cv2.flip(img, 0)
        cv2.imwrite(r"C:\Users\Wxr\Desktop\2" + "/" + filename, imageR1p0)
read_path(r"C:\Users\Wxr\Desktop\1")

对flipcode参数更改后,得到的翻转图像如下图:

在这里插入图片描述

分别是:原图,绕x轴翻转,绕y轴翻转,绕x,y轴同时翻转。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王乐予

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

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

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

打赏作者

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

抵扣说明:

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

余额充值