使用Python、OpenCV翻转图像(水平、垂直、水平垂直翻转)
1. 效果图2. 源码参考这篇博客将介绍如何使用Python、OpenCV翻转图像,类似于cv2.rotate()。
沿y轴水平翻转;沿x轴垂直翻转;沿x、y水平垂直翻转;
翻转典型的应用是数据增强,一直用于机器学习/深度学习以生成更多的训练数据样本,从而创建更强大、更健壮的图像分类器。
在进行模型训练时,假设原始样本很少,则可以 使用数据增强(data augmentation)进行数据集扩充。
1. 效果图
原图 VS 水平翻转——水平镜像效果图如下:
原图 VS 垂直翻转——垂直镜像效果图如下:
原图 VS 水平垂直翻转效果图如下:
2. 源码
# 使用OpenCV翻转图像(水平、垂直、水平垂直)# USAGE# python opencv_flip.py# 导入必要的包import argparseimport 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()