使用PythonOpenCV翻转图像(水平垂直水平垂直翻转)
Posted 程序媛一枚~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PythonOpenCV翻转图像(水平垂直水平垂直翻转)相关的知识,希望对你有一定的参考价值。
这篇博客将介绍如何使用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翻转图像(水平垂直水平垂直翻转)的主要内容,如果未能解决你的问题,请参考以下文章