使用PythonOpenCV翻转图像(水平垂直水平垂直翻转)

Posted 程序媛一枚~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PythonOpenCV翻转图像(水平垂直水平垂直翻转)相关的知识,希望对你有一定的参考价值。

使用Python、OpenCV翻转图像(水平、垂直、水平垂直翻转)

这篇博客将介绍如何使用Python、OpenCV翻转图像,类似于cv2.rotate()

  • 沿y轴水平翻转;
  • 沿x轴垂直翻转;
  • 沿x、y水平垂直翻转;

翻转典型的应用是数据增强,一直用于机器学习/深度学习以生成更多的训练数据样本,从而创建更强大、更健壮的图像分类器。

在进行模型训练时,假设原始样本很少,则可以 使用数据增强(data augmentation)进行数据集扩充

1. 效果图

原图 VS 水平翻转——水平镜像效果图如下:
在这里插入图片描述
原图 VS 垂直翻转——垂直镜像效果图如下:
在这里插入图片描述
原图 VS 水平垂直翻转效果图如下:
在这里插入图片描述

2. 源码

# 使用OpenCV翻转图像(水平、垂直、水平垂直)
# USAGE
# python opencv_flip.py

# 导入必要的包
import argparse
import cv2

# 构建命令行参数及解析
# --image 输入图像路径
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", type=str, default="ml2.jpg",
                help="path to the input image")
args = vars(ap.parse_args())

# 加载原始图像并展示
image = cv2.imread(args["image"])
cv2.imshow("Original", image)
print("[INFO] flipping image horizontally...")

# --image 输入图像
# --flipCode 1沿y轴水平翻转,0沿x轴垂直翻转,-1水平垂直翻转
# 水平翻转图像
flipped = cv2.flip(image, 1)
cv2.imshow("Flipped Horizontally", flipped)

# 垂直翻转图像
flipped = cv2.flip(image, 0)
print("[INFO] flipping image vertically...")
cv2.imshow("Flipped Vertically", flipped)

# 水平垂直翻转
flipped = cv2.flip(image, -1)
print("[INFO] flipping image horizontally and vertically...")
cv2.imshow("Flipped Horizontally & Vertically", flipped)
cv2.waitKey(0)

cv2.destroyAllWindows()

参考

以上是关于使用PythonOpenCV翻转图像(水平垂直水平垂直翻转)的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV:图像的水平垂直水平垂直翻转

水平或垂直翻转 JavaFX 图像

OpenCV 完整例程29. 图像的翻转(cv2.flip)

图像增强库Albumentations使用总结

图像增强库Albumentations使用总结

如何在wpf中翻转图像